Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. #include<cstdio>
  2. #include<algorithm>
  3. using namespace std;
  4.  
  5. int a[40005];
  6. int d[40005];
  7.  
  8. int main()
  9. {
  10.  
  11. if (n==0) //0个元素特判一下
  12. {
  13. printf("0\n");
  14. return 0;
  15. }
  16. d[1]=a[1]; //初始化
  17. int len=1;
  18. for (int i=2;i<=n;i++)
  19. {
  20. if (a[i]>=d[len]) d[++len]=a[i]; //如果可以接在len后面就接上
  21. else //否则就找一个最该替换的替换掉
  22. {
  23. int j=upper_bound(d+1,d+len+1,a[i])-d; //找到第一个大于它的d的下标
  24. d[j]=a[i];
  25. }
  26. }
  27. printf("%d\n",len);
  28. return 0;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement