标签:
最长公共子序列。
#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<map> #include<set> #include<queue> #include<stack> #include<iostream> using namespace std; typedef long long LL; const double pi=acos(-1.0),eps=1e-8; void File() { freopen("D:\\in.txt","r",stdin); freopen("D:\\out.txt","w",stdout); } inline int read() { char c = getchar(); while(!isdigit(c)) c = getchar(); int x = 0; while(isdigit(c)) { x = x * 10 + c - ‘0‘; c = getchar(); } return x; } const int maxn=1000; char s[maxn],t[maxn]; int dp[maxn][maxn]; int main() { while(~scanf("%s%s",s,t)) { memset(dp,0,sizeof dp); int lens=strlen(s),lent=strlen(t),ans=0; for(int i=0;i<lens;i++) { for(int j=0;j<lent;j++) { if(s[i]==t[j]) dp[i+1][j+1]=dp[i][j]+1; else dp[i+1][j+1]=max(dp[i][j+1],dp[i+1][j]); ans=max(dp[i+1][j+1],ans); } } printf("%d\n",ans); } return 0; }
标签:
原文地址:http://www.cnblogs.com/zufezzt/p/5740732.html