POJ 3548 Common Subsequence (LCS,dp)

来源:互联网 发布:飞鸟淘宝客源码下载 编辑:程序博客网 时间:2024/06/05 00:55

思路:

最长公共子序列。

#include <iostream>#include <cstdio>#include <string.h>#include <queue>#include <cmath>#include <algorithm>#include <map>typedef long long int lli;using namespace std;int dp[1040][1040];char s1[4040],s2[4040];int main(){    while(~scanf("%s%s",s1+1,s2+1)){        memset(dp,0,sizeof(dp));        int len = strlen(s2+1);        int i;        for(i = 1;s1[i];i++){            for(int j = 1;j <= len;j++){                dp[i][j] = max(dp[i-1][j],dp[i][j-1]);                dp[i][j] = max(dp[i-1][j-1] + (s1[i] == s2[j]),dp[i][j]);            }        }        printf("%d\n",dp[i-1][len]);    }}
0 0
原创粉丝点击