poj 1458 Common Subsequence

题目链接:http://poj.org/problem?id=1458

题目大意:求两个字符串的公共子序列的最长长度

解题思路:简单dp

 1 ///////////////////////////////////////////////////////////////////////////
 2 //problem_id: poj 1458
 3 //user_id: SCNU20102200088
 4 ///////////////////////////////////////////////////////////////////////////
 5 
 6 #include <algorithm>
 7 #include <iostream>
 8 #include <iterator>
 9 #include <iomanip>
10 #include <cstring>
11 #include <cstdlib>
12 #include <string>
13 #include <vector>
14 #include <cstdio>
15 #include <cctype>
16 #include <cmath>
17 #include <queue>
18 #include <stack>
19 #include <list>
20 #include <set>
21 #include <map>
22 using namespace std;
23 
24 ///////////////////////////////////////////////////////////////////////////
25 typedef long long LL;
26 const double PI=acos(-1.0);
27 ///////////////////////////////////////////////////////////////////////////
28 
29 ///////////////////////////////////////////////////////////////////////////
30 //Add Code:
31 int max(int a,int b){
32     return a>b? a:b;
33 }
34 ///////////////////////////////////////////////////////////////////////////
35 
36 int main(){
37     ///////////////////////////////////////////////////////////////////////
38     //Add code:
39     string a,b;
40     while(cin>>a>>b){
41         int alen=a.size(),blen=b.size(),i,j,dp[256][256];
42         memset(dp,0,sizeof(dp));
43         for(i=1;i<=alen;i++){
44             for(j=1;j<=blen;j++){
45                 if(a[i-1]==b[j-1]) dp[i][j]=max(dp[i][j],1+dp[i-1][j-1]);
46                 else dp[i][j]=max(dp[i][j],max(dp[i-1][j],dp[i][j-1]));
47             }
48         }
49         cout<<dp[alen][blen]<<endl;
50     }
51     ///////////////////////////////////////////////////////////////////////
52     return 0;
53 }
54 
55 ///////////////////////////////////////////////////////////////////////////
56 /*
57 Testcase:
58 Input:
59 abcfbc         abfcab
60 programming    contest
61 abcd           mnp
62 Output:
63 4
64 2
65 0
66 */
67 ///////////////////////////////////////////////////////////////////////////

posted on 2013-08-19 20:34  SCNU20102200088  阅读(147)  评论(0编辑  收藏  举报

导航