关闭

poj1458

标签: pojDP算法
38人阅读 评论(0) 收藏 举报
分类:
#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;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1633次
    • 积分:352
    • 等级:
    • 排名:千里之外
    • 原创:35篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档