codevs_1576 最長嚴格上升子序列
阿新 • • 發佈:2017-08-02
第一次 pre using tchar ffffff www pri dev 一點
我這算是刷水題嗎/哭笑
隨便打打nlogn的做法就水過了。
有一點要註意的是INF要開大一點
第一次沒註意,然後wa了
順便也能把這個的加強版水過。
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; inline int read(){ int t=1,num=0;char c=getchar(); while(c>‘9‘||c<‘0‘){if(c==‘-‘)t=-1;c=getchar();}while(c>=‘0‘&&c<=‘9‘){num=num*10+c-‘0‘;c=getchar();} return num*t; } const int maxn=5010; int n,a[maxn],best[maxn],ans=0; int ef(int x){ int l=1,r=ans+1; while(l<r){ int mid=(l+r)>>1; if(x>best[mid])l=mid+1; else r=mid; } return l; } inlineint min(int x,int y){return x<y?x:y;} inline int max(int x,int y){return x>y?x:y;} int main() { n=read(); for(int i=1;i<=n;i++)a[i]=read(); for(int i=1;i<=n;i++)best[i]=0x7fffffff; for(int i=1;i<=n;i++){ int t=ef(a[i]); best[t]=min(a[i],best[t]); ans=max(t,ans); } printf("%d\n",ans); return 0; }
本文由Yzyet編寫,網址為www.cnblogs.com/Yzyet。非Yzyet同意,禁止轉載,侵權者必究。
codevs_1576 最長嚴格上升子序列