您的位置:首页 > 大数据 > 人工智能

Uva 11456 - Trainsorting

2013-03-25 23:20 429 查看
转化一下才是lis

是从后往前的LIS+LDS

反序下数列搞定一切

2Y

#include<stdio.h>
int a[2010];
int dpa[2010],dpb[2010];
int Dp[2010];
int n;
int max(int a,int b){
	if(a>b)return a;return b;
	}
int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n);
		int i,j;
		for(i=0;i<n;i++)scanf("%d",&a[n-1-i]);
		for(i=0;i<n;i++){
			dpa[i]=1;
			for(j=0;j<i;j++)if(a[i]>a[j])dpa[i]=max(dpa[i],dpa[j]+1);
			}
		for(i=0;i<n;i++){
			dpb[i]=1;
			for(j=0;j<i;j++)if(a[i]<a[j])dpb[i]=max(dpb[i],dpb[j]+1);
			}
		for(i=0;i<n;i++)Dp[i]=dpa[i]+dpb[i]-1;
	//	for(i=0;i<n;i++)printf("%d ",dpa[i]);printf("\n");
	//	for(i=0;i<n;i++)printf("%d ",dpb[i]);printf("\n");
	//	for(i=0;i<n;i++)printf("%d ",Dp[i]);printf("\n");
		int res=0;
		for(i=0;i<n;i++)res=max(res,Dp[i]);
		printf("%d\n",res);
		}
//	return main();
	return 0;
	}
1

10

3

8

1

5

10

4

9

2

7

6

ans:5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: