[P1091]合唱队形

来源:互联网 发布:有装新风后悔的吗 知乎 编辑:程序博客网 时间:2024/06/06 07:46

原题链接

复习第一弹

到这一位置为止的最长上升子序列和自这个位置向后的最长下降子序列
相加减一取最大值
求下降子序列的时候
搞成了到这个位置为止的
maya简直耻辱

#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<cmath>#include<queue>#include<vector>#include<climits>#include<string>#include<cstdlib>#include<map>#include<ctime>#define MAX 1000000007#define LL long longusing namespace std;int i,j,h[105],up[105],down[105],n,num,maxn;int main(){    scanf("%d",&n);    for(i=1;i<=n;i++)    {        scanf("%d",&h[i]);        up[i]=1;                down[i]=1;    }    for(i=1;i<=n;i++)        for(j=1;j<i;j++)            if(h[i]>h[j]) up[i]=max(up[i],up[j]+1);    for(i=n;i>=1;i--)        for(j=i+1;j<=n;j++)            if(h[j]<h[i]) down[i]=max(down[i],down[j]+1);    for(i=1;i<=n;i++)    {        num=up[i]+down[i]-1;        maxn=max(maxn,num);    }    printf("%d",n-maxn);    return 0;}