LCS HDU1159


LCS 最长公共子序列
递推公式
关于LCS
tql
LCS


#include<bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f

using namespace std;
int c[1100][1100];      //前i 前j个元素 的lcs
char a[1100],b[1100];
int main()
{

    while(scanf("%s%s",a,b)!=EOF)    //string  会WA
    {
        int len1=strlen(a);
        int len2=strlen(b);
        memset(c,0,sizeof(c));
        for(int i=0;i<len1;i++)
        {
            for(int j=0;j<len2;j++)
            {
                if(a[i]==b[j])
                    c[i][j]=c[i-1][j-1]+1;
                else
                    c[i][j]=max(c[i-1][j],c[i][j-1]);
            }
        }
        printf("%d\n",c[len1-1][len2-1]);
    }
   // cout << "Hello world!" << endl;
    return 0;
}

posted @ 2021-03-15 21:07  DuJunlong  阅读(2)  评论(0编辑  收藏  举报  来源