Uva 11456 - Trainsorting
2013-03-25 23:20
429 查看
转化一下才是lis
是从后往前的LIS+LDS
反序下数列搞定一切
2Y
10
3
8
1
5
10
4
9
2
7
6
ans:5
是从后往前的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
相关文章推荐
- UVa 11456 - Trainsorting
- 【UVa】11456 - Trainsorting
- uva 11456 - Trainsorting(dp,LIS)
- UVa 11456 - Trainsorting
- UVA 11456 - Trainsorting(DP + LIS)
- UVA 11456 - Trainsorting(LIS)
- uva 11456 - Trainsorting(LIS)
- uva11456——Trainsorting(LIS)
- UVA11456--dp,LIS
- UVA - 11456 Trainsorting DP
- 动态规划intermediate:UVa 11456
- uva 11456
- UVa 10014 - Simple calculations
- uva 10487 - Closest Sums
- UVALive 4957 Fake scoreboard
- Uva 11464 - Even Parity
- UVA - 10622 Perfect P-th Powers
- UVa 10763 - Foreign Exchange
- UVa 269 Counting Patterns(dfs+构造)
- UVA 12716 GCD XOR (数论 gcd和异或不等式)