模板最长不下降子序列
Posted sineagle
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板最长不下降子序列相关的知识,希望对你有一定的参考价值。
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 ", len); 25 26 return 0; 27 }
以上是关于模板最长不下降子序列的主要内容,如果未能解决你的问题,请参考以下文章