标签:
Description
Input
Output
Sample Input
6
5 2 1 4 5 3
3
1 1 1
4
4 3 2 1
Sample Output
3
1
1
Hint
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 const int maxn=100000+10; 5 int n,a[maxn],b[maxn],t; 6 int erfen(int i) 7 { 8 int l,r,m; 9 l=0,r=t-1; 10 while(l<=r) 11 { 12 m=l+(r-l)/2; 13 if(a[i]>b[m]) 14 l=m+1; 15 else r=m-1; 16 } 17 return l; 18 } 19 int main() 20 { 21 int i,j; 22 while(cin>>n) 23 { 24 for(i=0;i<n;i++) 25 { 26 cin>>a[i]; 27 } 28 t=0; 29 b[0]=a[0]; 30 for(i=1;i<n;i++) 31 { 32 if(a[i]>b[t]) 33 { 34 b[++t]=a[i]; 35 } 36 else 37 { 38 int d=erfen(i); 39 b[d]=a[i]; 40 } 41 42 } 43 cout<<t+1<<endl; 44 45 } 46 return 0; 47 }
这里使用的二分查找。
用2重循环会超时。
2015 HUAS Summer Trainning #5 E
标签:
原文地址:http://www.cnblogs.com/huaxiangdehenji/p/4734829.html