[ CodeVS冲杯之路 ] P3955
Posted Yo!Hadilo!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ CodeVS冲杯之路 ] P3955相关的知识,希望对你有一定的参考价值。
不充钱,你怎么AC?
题目:http://codevs.cn/problem/3955/
最长上升子序列的加强版,n 有1000000,n 方的 DP 肯定会 TLE,那么用二分栈维护
二分栈我讲不好啊,交给他吧
http://www.cnblogs.com/Booble/archive/2010/11/27/1889482.html
1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<cmath> 5 #include<iostream> 6 #include<algorithm> 7 using namespace std; 8 9 const int N=1000001; 10 int a[N]; 11 inline int find(int x,int l,int r) 12 { 13 if (l>=r) return l; 14 int mid=(l+r)>>1; 15 return a[mid]>=x?find(x,l,mid):find(x,mid+1,r); 16 } 17 int main() 18 { 19 int n,m=0,x; 20 scanf("%d",&n); 21 while (n--) 22 { 23 scanf("%d",&x); 24 a[x>a[m]?++m:find(x,1,m)]=x; 25 } 26 printf("%d\\n",m); 27 return 0; 28 }
以上是关于[ CodeVS冲杯之路 ] P3955的主要内容,如果未能解决你的问题,请参考以下文章