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

 

你可能感兴趣的:(HDU)