标签:
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<string> //使用cin>>输入需要加上此头文件 5 using namespace std; 6 string a,b; 7 int dp[1000][1000]; 8 int max(int x,int y) 9 { 10 if(x>=y) 11 return x; 12 else 13 return y; 14 } 15 16 int main() 17 { 18 int i,j; 19 while(cin>>a) 20 { 21 cin>>b; 22 memset(dp,0,sizeof(dp));//ddp[i][j]为a[0]...a[i]和b[0]...b[j]的最长公共子序列的长度。 23 for(i=0;i<a.size();i++) 24 { 25 for(j=0;j<b.size();j++) 26 { 27 if(a[i]==b[j]) 28 dp[i+1][j+1]=dp[i][j]+1; //注意此从 dp[1][1]开始 29 else 30 dp[i+1][j+1]=max(dp[i][j+1],dp[i+1][j]); 31 32 } 33 } 34 printf("%d\n",dp[i][j]); 35 } 36 return 0; 37 }
poj_1458 LCS problem F.最长上升公共子序列
标签:
原文地址:http://www.cnblogs.com/x512149882/p/4738706.html