poj1458 dp Common Subsequence

来源:互联网 发布:fifo会计算法 编辑:程序博客网 时间:2024/05/16 12:24
#include <iostream>using namespace std;#define MAX(a, b) a>b?a:b#define M 251char s1[M], s2[M];int dp[2][M]; //滚动数组int main(){int i, j, l1, l2, ans;while(scanf("%s%s", s1+1, s2+1) != EOF){l1 = strlen(s1+1);l2 = strlen(s2+1);    memset(dp, 0, sizeof(dp));        for(i = 1; i <= l1; i++){for(j = 1; j <= l2; j++){if(s1[i] == s2[j])dp[i%2][j] = dp[1-i%2][j-1]+1;else dp[i%2][j] = MAX(dp[1-i%2][j], dp[i%2][j-1]);}}ans = l1%2?dp[1][l2]:dp[0][l2];printf("%d\n", ans);}    return 0;}

原创粉丝点击