最长公共子序列 HDU1159
1 #include <iostream> 2 #include <cstring> 3 4 using namespace std; 5 6 int dp[1000][1000]; 7 char a[1000]; 8 char b[1000]; 9 10 int main() 11 { 12 while(cin>>a>>b) 13 { 14 memset(dp,0,sizeof(dp)); 15 for(int i=1;i<=strlen(a);i++) 16 { 17 for(int t=1;t<=strlen(b);t++) 18 { 19 if(a[i-1]==b[t-1]) 20 dp[i][t]=dp[i-1][t-1]+1; 21 else 22 dp[i][t]=max(dp[i-1][t],dp[i][t-1]); 23 } 24 } 25 cout<<dp[strlen(a)][strlen(b)]<<endl; 26 } 27 return 0; 28 }