poj1458
#include <iostream>
#include <cstdio>
#include <cstring>
#include <climits>
#include <algorithm>

using namespace std;
char a[1000],b[1000];
int dp[1000][1000];

int solve()
{
    memset(dp,0,sizeof(dp));
    int i,j;
    for(i=0;*(a+i)!='\0';++i)
        for(j=0;*(b+j)!='\0';++j)
            if(*(a+i)==*(b+j))
                dp[i+1][j+1]=dp[i][j]+1;
            else
                dp[i+1][j+1]=max(dp[i][j+1],dp[i+1][j]);
    return dp[i][j];
}

int main()
{
    while(scanf("%s",a)!=EOF)
    {
        scanf("%s",b);
        printf("%d\n",solve());
    }

    return 0;
}

阅读更多
文章标签: poj DP 算法
个人分类: DP poj
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

poj1458

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭