Uva10405 Longest Common Subsequence

来源:互联网 发布:陕能集团待遇 知乎 编辑:程序博客网 时间:2024/05/18 02:22

链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1346

题意:经典LCS问题,最长公共子序列,状态转移方程if(a[i]=b[j])dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);

#include <stdio.h>#include <iostream>#include <string.h>using namespace std;const int m = 1000+10;int dp[m][m];int main(){    char a[m];    char b[m];    while(gets(a)&&gets(b))    {    int l=strlen(a);    int h=strlen(b);    memset(dp,0,sizeof(dp));    for(int i=1;i<=l;i++){        for(int j=1;j<=h;j++)        {            if(a[i-1]==b[j-1])                dp[i][j]=dp[i-1][j-1]+1;            else                dp[i][j]=max(dp[i-1][j],dp[i][j-1]);        }    }    cout << dp[l][h] << endl;    }}


0 0
原创粉丝点击