最长公共子序列 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 }
View Code

 

posted @ 2015-07-23 20:03  相儒以沫  阅读(149)  评论(0编辑  收藏  举报