华为OJ 合唱队 最长递增子序列,最长

来源:互联网 发布:forespider软件 编辑:程序博客网 时间:2024/05/29 14:02
#include<iostream>#include<cstdio>#include<cstring>#define MAX 200using namespace std;int main(){//freopen("data.txt","r",stdin);int dpUP[MAX],dpDown[MAX],num[MAX],n;cin>>n;for(int i=0;i<n;i++){cin>>num[i];}int result=0xffff;memset(dpUP,0,sizeof(dpUP));memset(dpDown,0,sizeof(dpDown));for(int i=0;i<n;i++){dpUP[i]=1;for(int j=0;j<i;j++)if(num[i]>num[j]&&dpUP[j]+1>dpUP[i])dpUP[i]=dpUP[j]+1;}//注意不能写到一个循环中for(int i=n-1;i>=0;i--){dpDown[i]=1;for(int j=n-1;j>i;j--)if(num[i]>num[j]&&dpDown[j]+1>dpDown[i])dpDown[i]=dpDown[j]+1;}for(int i=0;i<n;i++){int now=n-dpUP[i]-dpDown[i]+1;if(now<result)result=now;}cout<<result<<endl;return 0;}

0 0
原创粉丝点击