POJ 2533Longest Ordered Subsequence

来源:互联网 发布:wind数据库 免费版 编辑:程序博客网 时间:2024/06/06 03:02

题意:

给你n个数,要你求其严格最长上升子序列。

思路:

用nlogn的方法,即枚举+二分。

#include<cstdio>#include<algorithm>using namespace std;const int INF=0x3f3f3f3f;const int MAX=1005;int a[MAX],g[MAX];int n;int main(){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);g[i]=INF;}int ans=0;for(int i=1;i<=n;i++){int k=lower_bound(g+1,g+1+n,a[i])-g;if(g[k]>a[i]) g[k]=a[i];ans=max(ans,k);}printf("%d\n",ans);return 0;}


0 0