码迷,mamicode.com
首页 > 其他好文 > 详细

UVA10405 Longest Common Subsequence【LCS+DP】

时间:2018-12-02 19:20:57      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:a10   put   ems   注意   模板   pairs   ==   efi   mos   

Given two sequences of characters, print the length of the longest common subsequence of both sequences.
????Sequence 1:
技术分享图片

????Sequence 2:
技术分享图片

????For example, the longest common subsequence of the following two sequences ‘abcdgh’ ans ‘aedfhr’ is ‘adh’ of length 3.

Input
Input consists of pairs of lines. The first line of a pair contains the first string and the second line contains the second string. Each string is on a separate line and consists of at most 1,000 characters

Output
For each subsequent pair of input lines, output a line containing one integer number which satisfies the criteria stated above.

Sample Input
bcacbcabbaccbab
bccabccbbabacbc
a1b2c3d4e
zz1yy2xx3ww4vv
abcdgh
aedfhr
abcdefghijklmnopqrstuvwxyz
a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0
abcdefghijklmnzyxwvutsrqpo
opqrstuvwxyzabcdefghijklmn

Sample Output
11
4
3
26
14

问题链接UVA10405 Longest Common Subsequence
问题描述:(略)
问题分析
????动态规划问题,是一个标准模板题,套模板就可以了。
????需要注意字符串长度!
程序说明
????需要注意,要用行读入函数gets()读入数据,不能使用格式化输入"%s%s",不然会WA。
参考链接:(略)
题记:(略)

AC的C语言程序如下:

/* UVA10405 Longest Common Subsequence */

#include <stdio.h>
#include <string.h>

#define MAX(x,y) (((x) > (y)) ? (x) : (y))

#define N 1000
char a[N + 2], b[N + 2];
int dp[N + 1][N + 1];

int lcs(char *p, char *q)
{
    memset(dp, 0, sizeof(dp));

    int len1 = strlen(p + 1);
    int len2 = strlen(q + 1);
    int i, j;
    for(i = 1; i <= len1; i++)
        for(j = 1; j <= len2; j++) {
            if(p[i] == q[j])
                dp[i][j] = dp[i - 1][j - 1] + 1;
            else
                dp[i][j] = MAX(dp[i - 1][j], dp[i][j - 1]);
        }

    return dp[len1][len2];
}

int main(void)
{
    while(gets(a + 1), gets(b + 1))
        printf("%d\n", lcs(a, b));

    return 0;
}

UVA10405 Longest Common Subsequence【LCS+DP】

标签:a10   put   ems   注意   模板   pairs   ==   efi   mos   

原文地址:https://www.cnblogs.com/tigerisland45/p/10054428.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!