关闭

NYOJ——17

470人阅读 评论(0) 收藏 举报

题目来源:http://http://acm.nyist.net/JudgeOnline/problem.php?pid=17

单调递增最长子序列


#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;

int d[10005];
int main()
{
	int N;
	scanf("%d",&N);
	int i,j,Max;
	char str[10005];
	while(N--)
	{
		scanf("%s",str);
		int len=strlen(str);
		Max=0;
		for(i=0;i<len;i++)
			d[i]=1;
		for(i=0;i<len;i++)
		{
			for(j=i+1;j<len;j++)
			{
				if(str[j]>str[i]&&d[j]<d[i]+1)
					d[j]=d[i]+1;
			}
		}
		for(i=0;i<len;i++)
		{
			if(Max<d[i])
				Max=d[i];
		}
		printf("%d\n",Max);
	}
	return 0;
	
}

题目思想很简单。方法也有很多。这只是其中的一种,比较容易理解罢了

经典的DP问题。时间复杂度是O(n^2)求最长上升子序列的长度。

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;

#define N 10010

int main()
{
	char str[N],a[N];
	int i,j,len,T,count;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%s",str);
		count=1;
		len=strlen(str);
		a[0]=0;
		for(i=0;i<len;i++)
		{
			for(j=count-1;j>=0;j--)
			{
				if(str[i]>a[j])
				{
					a[j+1]=str[i];
					if(j+1==count)
						count++;
					break;
				}				
			}
		}
		printf("%d\n",count-1);
	}
	return 0;
}



0
0
查看评论

NYOJ 17

时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入第一行一个整数0 随后的n行,每行有一个字符串,该字符串的长度不会超过1...
  • zz958712568
  • zz958712568
  • 2013-02-08 20:31
  • 229

nyoj 17

// nyoj 17        代码如上,用的是dp,总的来说就是对一个字符串 从末尾开始比较,设定一个数组,存放每个单调字串的最大长度,最后比较。。。 //要注意的就是里面if语句对于每次字符比较后,更新数组,自己在纸上画画...
  • k183000860
  • k183000860
  • 2014-12-11 14:37
  • 293

NYOJ 17 单调递增子序列

单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入第一行一个整数0 随后的n行,...
  • ruzhuxiaogu
  • ruzhuxiaogu
  • 2014-04-25 21:25
  • 364

nyoj cakes 1163 (排序) 水

cakes 时间限制:1000 ms  |  内存限制:65535 KB 难度:0 描述there are some naughty little cakes(less than 1000), each cake has a numb...
  • yanghui07216
  • yanghui07216
  • 2015-11-20 23:29
  • 191

nyoj801 哈夫曼编码,输入有毒

哈夫曼编码实现
  • cai13160674275
  • cai13160674275
  • 2016-02-28 14:46
  • 483

NYOJ练习题 删除元素(二分查找)

删除元素 时间限制:1000 ms  |  内存限制:65535 KB 描述 题意很简单,给一个长度为n的序列,问至少删除序列中多少个数,使得删除后的序列中的最大值最小值 输入多组测试数据,每组测试数据包含两行。 第一行一个整数n( n 第二...
  • LYHVOYAGE
  • LYHVOYAGE
  • 2013-10-20 15:32
  • 1320

nyoj-639-找规律

#include int main() {     int a[10],i,t1,t2,k1,k2,k3;     while(scanf("%d%d%d%d%d",&a[0],&a[1],&am...
  • u011514451
  • u011514451
  • 2014-04-05 15:10
  • 276

NYOJ1112求次数

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=1112 用set水了好几遍才过的。。。 #include #include #include #include using namespace std; set...
  • wsn564533648
  • wsn564533648
  • 2016-04-13 19:22
  • 222

NYOJ 220 推桌子(贪心)

推桌子 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述The famous ACM (Advanced Computer Maker) Company has rented a floor of a buildi...
  • Dreamlandz
  • Dreamlandz
  • 2016-11-02 21:09
  • 570

NYOJ 1163 cakes(自己想复杂了)

cakes 时间限制:1000 ms  |  内存限制:65535 KB 难度:0 描述there are some naughty little cakes(less than 1000), each cake has a numberthey s...
  • nuanxin_520
  • nuanxin_520
  • 2015-09-11 08:34
  • 228
    个人资料
    • 访问:255157次
    • 积分:3188
    • 等级:
    • 排名:第12792名
    • 原创:108篇
    • 转载:19篇
    • 译文:0篇
    • 评论:54条