HDU1159 && POJ1458:Common Subsequence(LCS)

 

最长公共子序列LCS

有模板的吧

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

int i,j,dp[1000][1000],len1,len2;
char a[1000],b[1000];
void LCS()
{
    memset(dp,0,sizeof(dp));
    for(i=1;i<=len1;i++)
    {
        for(j=1;j<=len2;j++)
        {
            if(a[i-1]==b[j-1])
            {
                dp[i][j]=dp[i-1][j-1]+1;
            }
            else
            {
                dp[i][j]=max(dp[i][j-1],dp[i-1][j]);
            }
        }
    }
}
int main()
{
    while(~scanf("%s%s",&a,&b))
    {
        len1=strlen(a);
        len2=strlen(b);
        LCS();
        printf("%d\n",dp[len1][len2]); 
    }    
} 

 

posted on 2014-09-10 21:40  薛定谔的熊猫  阅读(138)  评论(0编辑  收藏  举报

导航