最长公共子序列

来源:互联网 发布:环境监测总站数据 编辑:程序博客网 时间:2024/05/02 01:21
#include<cstdio>#include<iostream>#include<cstring>using namespace std;int main(){    //freopen("LCS.txt","r",stdin);    int t,i,j;    char s1[1002],s2[1002];    cin>>t;    while(t--){        cin>>s1>>s2;        int x=strlen(s1);        int y=strlen(s2);        int len[x+1][y+1];        memset(len,0,sizeof(len));        for(i=1;i<=x;i++){            for(j=1;j<=y;j++){                if(s1[i-1]==s2[j-1])                    len[i][j]=len[i-1][j-1]+1;                else{                    if(len[i-1][j]>len[i][j-1])                        len[i][j]=len[i-1][j];                    else                        len[i][j]=len[i][j-1];                }            }        }        cout<<len[x][y]<<endl;    }    return 0;}


总结:递推公式如下

相关链接:最长公共子序列

0 0
原创粉丝点击