为什么只有80

P1091 [NOIP2004 提高组] 合唱队形

##我的也只有80.很迷 ```cpp #include<bits/stdc++.h> using namespace std; int A[1000000]; int Q[1000000]; int F[1000000]; int B[1000000]; int find(int l,int r,int x) { int mid=(l+r)>>1; while(l<r) { if(Q[mid]>x)r=mid; else l=mid+1; mid=(l+r)>>1; } return mid; } int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&A[i]); Q[1]=A[1]; F[1]=1; B[n]=1; int p=1; for(int i=2;i<=n;i++) { if(Q[p]<A[i]) Q[++p]=A[i]; else Q[find(1,p,A[i])]=A[i]; F[i]=p; } Q[1]=A[n]; p=1; for(int i=n-1;i>=1;i--) { if(Q[p]<A[i]) Q[++p]=A[i]; else Q[find(1,p,A[i])]=A[i]; B[i]=p; } int ans=0; for(int i=1;i<=n;i++) ans=max(ans,B[i]+F[i]-1); ans=n-ans; cout<<ans; return 0; } ```
by wch1090441672 @ 2017-11-08 20:38:19


|