比赛 动态规划练习2 评测结果 AAAAAAAAAA
题目名称 最长上升子序列 最终得分 100
用户昵称 sakura 运行时间 0.006 s
代码语言 C++ 内存使用 0.30 MiB
提交时间 2017-03-28 20:35:51
显示代码纯文本
#include <stdio.h>
#define  MAX 1000
int seq[MAX+10];
int seqlen[MAX+10];
int main()
{
	freopen("lis1.in","r",stdin);
	freopen("lis1.out","w",stdout);
	int i,j,k,N,max,maxlen=1;
	for(i=1;i<=MAX+10;i++)
		seqlen[i]=1;               
	scanf("%d",&N);
	for(i=1;i<=N;i++)
		scanf("%d",&seq[i]);       
	for (i=2;i<=N;i++)
	{
		max=0;
		for (j=1;j<=i-1;j++)
		{
			if(seq[j]<seq[i]&&seqlen[j]>max)  
				max=seqlen[j];
		}
		seqlen[i]=max+1;
		if(seqlen[i]>maxlen)           
			maxlen=seqlen[i];
	}
	printf("%d",maxlen);
	return 0;
}