zoukankan      html  css  js  c++  java
  • poj3903

    最长上升子序列

    View Code
    #include <iostream>
    #include <cstdlib>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    
    #define maxn 100005
    
    int n;
    int top;
    int stk[maxn];
    
    int binarysearch(int l, int r, int a)
    {
        if (l > r)
            return l;
        if (a > stk[r])
            return r + 1;
        while (l < r)
        {
            int mid = (l + r) / 2;
            if (stk[mid] < a)
                l = mid + 1;
            else
                r = mid;
        }
        return l;
    }
    
    int main()
    {
        //freopen("t.txt", "r", stdin);
        while (scanf("%d", &n) != EOF)
        {
            top = 0;
            for (int i = 0; i < n; i++)
            {
                int a;
                scanf("%d", &a);
                int index = binarysearch(0, top - 1, a);
                stk[index] = a;
                top = max(top, index + 1);
            }
            printf("%d\n", top);
        }
        return 0;
    }
  • 相关阅读:
    Mac配置docker阿里云加速器
    Docker初学笔记
    Mac下载安装Tomcat
    MySQL
    monkey
    Git基本使用
    yaml语法
    PAT_B数素数 (20)
    PAT_B1002数字分类
    PAT基础编程练习
  • 原文地址:https://www.cnblogs.com/rainydays/p/2736030.html
Copyright © 2011-2022 走看看