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

【模板】最长不下降子序列

时间:2018-07-16 19:33:18      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:pac   upper   iostream   can   for   int   else   using   div   

 1 //2018-07-16 17:42:40
 2 #include <iostream>
 3 #include <cstdio>
 4 using namespace std;
 5 
 6 const int N = 10000001;
 7 
 8 int n;
 9 int a[N], d[N];
10 
11 int main(){
12     scanf("%d", &n);
13     for(int i=i; i<=n; i++) scanf("%d", &a[i]);
14     
15     d[1] = a[1];
16     int len = 1;
17     for(int i=2; i<=n; i++){
18         if(a[i] >= d[len]) d[++len] = a[i];
19         else{
20             int j = upper_bound(d+1, d+len+1, a[i]) - d;
21             d[j] = a[i];
22         }
23     }
24     printf("%d\n", len);
25     
26     return 0;
27 }

 

【模板】最长不下降子序列

标签:pac   upper   iostream   can   for   int   else   using   div   

原文地址:https://www.cnblogs.com/sineagle/p/9319293.html

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