ZOJ 2136 Longest Ordered Subsequence(LIS)

来源:互联网 发布:sql怎么统计班级人数 编辑:程序博客网 时间:2024/05/01 00:44
#include <iostream>#include <memory.h>#include <cstdio>using namespace std;const int maxn=1010;int a[maxn],b[maxn],dp[maxn],n;int main(){int t;scanf("%d",&t);while(t--){scanf("%d",&n);for(int i=0;i<n;++i){scanf("%d",&a[i]);b[i]=b[i]=-1;}memset(dp,0,sizeof(dp));int ans=0;for(int i=0;i<n;++i){int l=0,r=ans;while(l<=r){int m=(l+r)>>1;if(b[m]<a[i]){l=m+1;}else{r=m-1;}}b[l]=a[i];if(ans<l){ans++;}}printf("%d\n",ans);if(t)printf("\n");}return 0;}