HDU1159 Common Subsequence

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159

题思路:

基本的最长公共子序列,不懂的请看这个人的博客:http://www.cnblogs.com/xkfz007/archive/2012/10/17/2728728.html

AC代码:

#include<iostream>
#include<string>
#include<cstring>
using namespace std;

int dp[1010][1010];

int main()
{
    string a,b;
    while(cin>>a>>b)
    {
        int i,j,l1=a.size(),l2=b.size();
        memset(dp,0,sizeof(dp));
        for(i=1;i<=l1;i++)
        {
            for(j=1;j<=l2;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[l1][l2]<<endl;;
    }
    return 0;
}


你可能感兴趣的:(dp)