码迷,mamicode.com
首页 > 其他好文 > 详细

POJ3903 Stock Exchange LIS最长上升子序列

时间:2019-11-01 18:52:06      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:push   tor   back   max   ref   namespace   pre   begin   name   

POJ3903 Stock Exchange

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <vector>
 4 #include <algorithm>
 5 using namespace std;
 6 const int maxn = 1e5+5;
 7 int a[maxn];
 8 int main() {
 9     int n;
10     while (~scanf("%d",&n)) {
11         for (int i = 1; i <= n; ++i) scanf("%d",&a[i]);
12         vector<int> ve;
13         ve.push_back(a[1]);
14         for (int i = 2; i <= n; ++i) {
15             if (ve[ve.size()-1] < a[i]) {
16                 // 如果新进来的数比最后一个数大,那么直接插入
17                 ve.push_back(a[i]);
18             }
19             else {
20                 ve[lower_bound(ve.begin(),ve.end(),a[i])-ve.begin()] = a[i];
21             }
22         }
23         printf("%d\n",ve.size());
24     }
25     return 0;
26 }

 

POJ3903 Stock Exchange LIS最长上升子序列

标签:push   tor   back   max   ref   namespace   pre   begin   name   

原文地址:https://www.cnblogs.com/wstong/p/11778374.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!