2 solutions
-
0
n-最长单峰子序列
#include<iostream> using namespace std; const int N=1010; int a[N],f[N],g[N],w[N]; int main(){ int n; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) { f[i]=1; for(int j=1;j<i;j++) if(a[j]<a[i]) f[i]=max(f[i],f[j]+1); } for(int i=n;i>=1;i--) { g[i]=1; for(int j=n;j>i;j--) if(a[j]<a[i]) g[i]=max(g[i],g[j]+1); } int maxn=-1; for(int i=1;i<=n;i++) { w[i]=f[i]+g[i]-1; maxn=max(maxn,w[i]); } cout<<n-maxn; return 0; }
Information
- ID
- 615
- Time
- 1000ms
- Memory
- 16MiB
- Difficulty
- 8
- Tags
- # Submissions
- 16
- Accepted
- 5
- Uploaded By