首页 > 代码库 > Poj 1836
Poj 1836
81.86 1.86 1.30621 2 1.4 1 1.97 2.2有八个大兵身高如上 求至少出列几个大兵可以站成山形队列#include<iostream>using namespace std;double a[1111];int dp1[1111];int dp2[1111];int main(){ int i,j; int n; int max; while(scanf("%d",&n)!=EOF) { max=0; for(i=1;i<=n;i++ ) { dp1[i]=1; dp2[i]=1; scanf("%lf",&a[i]); } for(i=1;i<=n;i++) { int max1=0; for(j=i-1;j>=1;j--) { if(a[i]>a[j]&&dp1[j]>max1) max1=dp1[j]; } dp1[i]+=max1; } for(i=n;i>=1;i--) { int max2=0; for(j=n;j>i;j--) if(a[i]>a[j]&&max2<dp2[j]) max2=dp2[j]; dp2[i]+=max2; } int x,y; for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) if(dp1[i]+dp2[j]>max) { x=i;y=j; max=dp1[i]+dp2[j]; } if(x!=y) cout<<n-max<<endl; else cout<<n-max+1<<endl; } return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。