NYOJ 36 最长公共子序列(动态规划)

3人阅读 评论(0) 收藏 举报
分类:

想看题目原址,就点我。

最长公共子序列

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。
tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。
输入
第一行给出一个整数N(0<N<100)表示待测数据组数
接下来每组数据两行,分别为待测的两组字符串。每个字符串长度不大于1000.
输出
每组测试数据输出一个整数,表示最长公共子序列长度。每组结果占一行。
样例输入
2
asdf
adfsd
123abc
abc123abc
样例输出
3
6
来源
经典
上传者
hzyqazasdf

解题思路:

本题和POJ的1458题目一样,只不过输入有些不同,做法一样。另外南阳上用#include<iostream>必须要用cin,cout不然会报错。在POJ上不存在这样的情况。

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define MAXN 1000+10
char s1[MAXN],s2[MAXN];
int MaxLen[MAXN][MAXN];
int main(){
	int N,length1,length2;
	scanf("%d",&N);
	while(N--)
	{
		scanf("%s%s",s1,s2);
		length1 = strlen(s1);
		length2 = strlen(s2);
		memset(MaxLen,0,sizeof(MaxLen));
		for(int i = 1; i <= length1; i++)
			for(int j = 1; j <= length2; j++){
				if(s1[i-1] == s2[j-1])
					MaxLen[i][j] = MaxLen[i-1][j-1] + 1;
				else
					MaxLen[i][j] = max(MaxLen[i][j-1],MaxLen[i-1][j]);
			}
		printf("%d\n",MaxLen[length1][length2]);
	}
	return 0;
}


查看评论

程序员职业规划之技术的精进

-
  • 1970年01月01日 08:00

NYOJ36最长公共子序列

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=36 纯模板。。 代码: #include #include...
  • wsn564533648
  • wsn564533648
  • 2016-04-11 18:02:48
  • 239

NYOJ36——最长公共子序列

题目链接: 题目分析:假设两个字符串分别标记为str1和str2。建立一个二维的表dp,dp[i][j]表示str1的前i个字符和str2的前j个字符的最长公共子序列的个数,遍历str1和str2的...
  • kay_zhyu
  • kay_zhyu
  • 2013-04-15 18:55:14
  • 690

NYOJ36 最长公共子序列 【动态规划】

最长公共子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。 tip:最长公共子序列也...
  • u012846486
  • u012846486
  • 2014-04-23 23:20:10
  • 1144

NYOJ-36-最长公共子序列

最长公共子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。 tip:最长公共子序列...
  • qq_32680617
  • qq_32680617
  • 2016-02-27 17:30:22
  • 957

NYOJ 36 最长公共子序列 (动态规划)

最长公共子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。 tip:最长公共子序...
  • liu940204
  • liu940204
  • 2015-08-09 09:47:31
  • 219

nyoj 36 最长公共子序列(动态规划)

时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。 tip:最长公共子序列也称作最长公共子串...
  • qq_32650831
  • qq_32650831
  • 2016-07-21 14:19:35
  • 255

NYOJ 动态规划 36题 最长公共子序列

描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。 tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subseq...
  • shao824714565
  • shao824714565
  • 2016-05-05 18:04:55
  • 454

NYOJ 36 最长公共子序列 (动态规划基础)

最长公共子序列时间限制:3000 ms  |  内存限制:65535 KB难度:3描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。tip:最长公共子序列也称作最长公共子串(...
  • MazeFog
  • MazeFog
  • 2018-04-20 20:18:13
  • 4

NYOJ 题目36 最长公共子序列(动态规划)

最长公共子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。 tip...
  • yu_ch_sh
  • yu_ch_sh
  • 2014-10-02 15:51:58
  • 445
    个人资料
    持之以恒
    等级:
    访问量: 15万+
    积分: 4849
    排名: 7393
    最新评论