zoukankan      html  css  js  c++  java
  • 51 Nod 1134 最长递增子序列(经典问题回顾)

    1134 最长递增子序列 

    基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题

     收藏

     关注

    给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的)

    例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10。

    Input

    第1行:1个数N,N为序列的长度(2 <= N <= 50000)
    第2 - N + 1行:每行1个数,对应序列的元素(-10^9 <= S[i] <= 10^9)

    Output

    输出最长递增子序列的长度。

    Input示例

    8
    5
    1
    6
    8
    2
    4
    5
    10

    Output示例

    5
    #include<bits/stdc++.h>
    #include<stdio.h>
    #include<iostream>
    #include<cmath>
    #include<math.h>
    #include<queue>
    #include<set>
    #include<map>
    #include<iomanip>
    #include<algorithm>
    #include<stack>
    #define inf 0x3f3f3f3f
    using namespace std;
    typedef long long ll;
    int a[50005];
    int main()
    {
    #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
    #endif // ONLIN
        int n;
        scanf("%d",&n);
        for(int i=0;i<n;++i)
            scanf("%d",&a[i]);
        int pos;int len=0;
        for(int i=0;i<n;++i)
        {
            pos=upper_bound(a,a+len,a[i])-a;
            if(pos==len){len++;}
            a[pos]=a[i];
        }
        printf("%d
    ",len);
    }
    
  • 相关阅读:
    vue 加载更多2
    vue 加载更多
    js获取浏览器信息
    iscroll
    git fetch
    input file accept类型
    git从安装到使用
    sass中的循环判断条件语句
    animation
    vue2+animate.css
  • 原文地址:https://www.cnblogs.com/linruier/p/9562484.html
Copyright © 2011-2022 走看看