51nod 1134最长递增子序列

来源:互联网 发布:微信数据精灵 编辑:程序博客网 时间:2024/05/22 12:13

题目链接

#include"stdlib.h"#include"stdio.h"#include"algorithm"using namespace std;const int maxn=1e5;int dp[maxn];//dp[i]表示递增数量i的最小值int a[maxn];int main(){    int n,len=1;    scanf("%d",&n);    for(int i=1;i<=n;i++)        scanf("%d",&a[i]);    dp[len]=a[1];    for(int i=2;i<=n;i++)    {        if(a[i]>dp[len])          dp[++len]=a[i];        else        {            int pos=lower_bound(dp+1,dp+len,a[i])-dp;            //在dp[]找第一个>=a[i]下标            dp[pos]=a[i];        }    }    printf("%d\n",len);    return 0; }
0 0
原创粉丝点击