NYOJ 36 最长公共子序列

链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=36

经典dp题:

#include <iostream>
#include<cstring>
using namespace std;
int dp[1005][1005];
char a[1005];
char b[1005];
int main()
{
    int n;
    int i,j;
    int la,lb;
    cin>>n;
    while(n--)
    {

        memset(dp,0,sizeof(dp));
        cin>>a>>b;
        la=strlen(a);
        lb=strlen(b);

        for(i=0; i<la; i++)
            for(j=0; j<lb; j++)
            {
                if(a[i]==b[j])
                    dp[i+1][j+1]=dp[i][j]+1;
                else
                    dp[i+1][j+1]=max(dp[i+1][j],dp[i][j+1]);

            }
        cout<<dp[la][lb]<<endl;

    }
    return 0;
}


 

原文地址:https://www.cnblogs.com/frankM/p/4399506.html