NYOJ 36-最长公共子序列(典型DP)

来源:互联网 发布:手机破解软件资源 编辑:程序博客网 时间:2024/06/11 06:01

最长公共子序列

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。
tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。
输入
第一行给出一个整数N(0<N<100)表示待测数据组数
接下来每组数据两行,分别为待测的两组字符串。每个字符串长度不大于1000.
输出
每组测试数据输出一个整数,表示最长公共子序列长度。每组结果占一行。
样例输入
2asdfadfsd123abcabc123abc
样例输出
36
//每次从两个字符串中拿出一个最前面的字符,判断两个字符相不相等//dp[i][j]表示从第一个字符串中的前i个字符跟从第二个字符串中的前j个字符的最长公共子序列长度//相等,则表示可以拿掉这2个字符, dp[i][j] = max(dp[i][j], dp[i-1][j-1]+1)//不相等, 则判断拿掉哪个字符串的首字符能取得最长, dp[i][j] = max(dp[i][j-1], dp[i-1][j]);//转移方程/*    if(s1[i-1]==s2[j-1])        {             dp[i][j] = max(dp[i][j], dp[i-1][j-1]+1);        }    else        dp[i][j] = max(dp[i][j-1], dp[i-1][j]);*///结果输出dp[l1][l2]#include <stdio.h>#include <algorithm>#include <string.h>#include <iostream>#define maxn 1005using namespace std;char s1[maxn], s2[maxn];int dp[maxn][maxn];int main(){    int T;    scanf("%d", &T);    while(T--)    {        cin>>s1>>s2;        int l1 = strlen(s1);        int l2 = strlen(s2);        memset(dp, 0, sizeof(dp));        for(int i=1; i<=l1; i++)        {            for(int j=1; j<=l2; j++)            {                if(s1[i-1]==s2[j-1])                {                    dp[i][j] = dp[i-1][j-1]+1;                }                else                    dp[i][j] = max(dp[i][j-1], dp[i-1][j]);            }        }        printf("%d\n", dp[l1][l2]);    }    return 0;}

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 7岁儿童流清鼻涕怎么办 1岁的宝宝流鼻涕怎么办 3岁宝宝鼻塞严重怎么办 宝宝流鼻涕2个月怎么办 一个月宝宝流鼻子怎么办 六个月宝宝流清水鼻涕怎么办 婴儿流鼻涕怎么办最简单方法 婴儿咳嗽流鼻涕怎么办最简单方法 6个月小孩流鼻涕怎么办 宝宝风寒感冒咳嗽流鼻涕怎么办 三个月宝宝流清鼻涕怎么办 三个月宝宝留清鼻涕怎么办 三个月婴儿流清鼻涕怎么办 宝宝7个月流鼻涕怎么办 6个月孩子流鼻涕怎么办 十一个月孩子感冒流鼻涕怎么办 7个月孩子流鼻涕怎么办 18个月的宝宝流鼻涕怎么办 6个月宝宝咳嗽流鼻涕怎么办 18个月宝宝咳嗽流鼻涕怎么办 6个月宝宝流鼻涕打喷嚏怎么办 宝宝18个月流鼻涕怎么办 18个月宝宝感冒流鼻涕怎么办 小孩睡觉鼻子不通气怎么办 宝宝鼻子里有鼻涕出不来怎么办 孩子喉咙有痰呼呼响怎么办 六个月宝宝鼻塞怎么办速效办法 两个月小孩鼻子不通气怎么办 一岁宝宝流清鼻涕怎么办 孩子鼻子里有鼻涕怎么办 宝宝晚上睡觉鼻子不通气怎么办 宝宝感冒睡觉鼻子不通气怎么办 宝宝3个月流鼻涕怎么办 小孩吃着了发烧怎么办 半岁宝宝鼻子塞怎么办 宝宝伤风鼻子不通气怎么办 二十天的宝宝伤风鼻子不通怎么办 一个多月的宝宝鼻子有鼻屎怎么办 2个月宝宝鼻子里有鼻屎怎么办 四个月婴儿感冒发烧怎么办 一个月婴儿感冒发烧怎么办