NYOJ 17 单调递增最长子序列 DP

单调递增最长子序列

时间限制:3000 ms  |  内存限制:65535 KB

难度:4

描述
求一个字符串的最长递增子序列的长度

如:dabdbf最长递增子序列就是abdf,长度为4

输入
第一行一个整数0<n<20,表示有n个字符串要处理

随后的n行,每行有一个字符串,该字符串的长度不会超过10000

输出
输出字符串的最长递增子序列的长度
样例输入
3
aaa
ababc
abklmncdefg
样例输出
1
3
7
来源

经典题目

#include<cstdio>
#define N 10001
int main()
{
	int dp[N];
	char s[N];
	int t;
	scanf("%d", &t);
	while (t--)
	{
		int ans = 0;
		scanf("%s", s);
		for (int i = 0; s[i] != '\0'; i++)
		{
			dp[i] = 1;
			for (int j = 0; j < i; j++)
			{
				if (s[i]>s[j] && dp[i] < dp[j] + 1)
				{
					dp[i] = dp[j] + 1;
				}
			}
			if (ans < dp[i])
				ans = dp[i];
		}
		printf("%d\n", ans);
	}
	return 0;
}
时间: 2024-10-12 14:59:47

NYOJ 17 单调递增最长子序列 DP的相关文章

NYOJ 17 单调递增最长子序列

单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理 随后的n行,每行有一个字符串,该字符串的长度不会超过10000 输出 输出字符串的最长递增子序列的长度 样例输入 3 aaa ababc abklmncdefg 样例输出 1 3 7 动归,不多说,看代码: #include<stdio.h>

NYOJ 17:单调递增最长子序列【二分】

单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理 随后的n行,每行有一个字符串,该字符串的长度不会超过10000 输出 输出字符串的最长递增子序列的长度 样例输入 3 aaa ababc abklmncdefg 样例输出 1 3 7 AC-code: #include<cstdio> #i

NYOJ 17 单调递增最长子序列(动态规划)

时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理 随后的n行,每行有一个字符串,该字符串的长度不会超过10000 输出 输出字符串的最长递增子序列的长度 样例输入 3 aaa ababc abklmncdefg 样例输出 1 3 7 #include<iostream> #include<cstring

nyist oj 17 单调递增最长子序列 (动态规划经典题)

单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理 随后的n行,每行有一个字符串,该字符串的长度不会超过10000 输出 输出字符串的最长递增子序列的长度 样例输入 3 aaa ababc abklmncdefg 样例输出 1 3 7 来源 经典题目 动态规划的经典题目:好像还有好几种解法,我现在研究的

nyoj 题目17 单调递增最长子序列

单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理随后的n行,每行有一个字符串,该字符串的长度不会超过10000 输出 输出字符串的最长递增子序列的长度 样例输入 3 aaa ababc abklmncdefg 样例输出 1 3 7 复习了利用二分搜索和额外空间解决最长递增子序列问题,最重要的是二分搜索的

nyoj17 单调递增最长子序列(DP)

题目17 题目信息 运行结果 本题排行 讨论区 单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理 随后的n行,每行有一个字符串,该字符串的长度不会超过10000 输出 输出字符串的最长递增子序列的长度 样例输入 3 aaa ababc abklmncdefg 样例输出 1 3 7 来源 经典题目 上传

nyoj17单调递增最长子序列(dp)

单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理随后的n行,每行有一个字符串,该字符串的长度不会超过10000 输出 输出字符串的最长递增子序列的长度 样例输入 3 aaa ababc abklmncdefg 样例输出 1 3 7 来源 经典题目 #include<stdio.h> #inc

NYOJ 214 单调递增最长子序列(二)

#include<stdio.h>#include<string.h>const int max=10001;int dp[max];char s[max];int maxn;void LTCS(){ int len; memset(dp,0,sizeof(dp)); len=strlen(s); for(int i=0;i<len;i++) { dp[i]=1; for(int j=0;j<i;j++) { if(s[i]>s[j] && dp[

南阳17(单调递增最长子序列)

单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理随后的n行,每行有一个字符串,该字符串的长度不会超过10000 输出 输出字符串的最长递增子序列的长度 样例输入 3 aaa ababc abklmncdefg 样例输出 1 3 7 1 #include<stdio.h> 2 #include