标签:
Description
Sample Input
Sample Output
设c[i][j]为字符串a的第i个字符与字符串b的第j个字符为止的最长公共子序列长度,那么有两种情况:
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 int dp[1005][1005]; 5 int main() 6 { 7 string a,b; 8 while(cin>>a>>b) 9 { 10 int alen=a.length(); 11 int blen=b.length(); 12 memset(dp,0,sizeof(dp)); 13 for(int i=1;i<=alen;i++) 14 { 15 for(int j=1;j<=blen;j++) 16 { 17 if(a[i-1]==b[j-1]) 18 dp[i][j]=dp[i-1][j-1]+1; 19 else 20 dp[i][j]=max(dp[i-1][j],dp[i][j-1]); 21 } 22 } 23 for(int i=1;i<=alen;i++) 24 { 25 for(int j=1;j<=blen;j++) 26 cout<<dp[i][j]<<" "; 27 cout<<endl; 28 } 29 cout<<dp[alen][blen]<<endl; 30 } 31 return 0; 32 }
解题报告 HDU1159 Common Subsequence
标签:
原文地址:http://www.cnblogs.com/verlen11/p/4240078.html