zoukankan      html  css  js  c++  java
  • 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 ///////////////////////////////////////////////////////////////////////////
  • 相关阅读:
    兑奖
    杨辉三角
    偶数求和
    进制转化
    填词
    等值数目
    Spring框架的七个模块
    数据库中的第1、2、3范式 (昨天没睡好,因为那个蚊子~~)
    关于eclipse 不编译或者找不到*.class的问题
    servlet生命周期的理解
  • 原文地址:https://www.cnblogs.com/linqiuwei/p/3268822.html
Copyright © 2011-2022 走看看