b[i]表示长度为i的最长不下降子序列的最小末尾元素的值
显然它是单调递增的,满足二分性质,然后就可以愉快地二分啦.

这个做法是错误的!!!!!!!(划掉

这个方法是正确的,替换的时候虽然位置顺序换了,最终输出来的答案不对,但是是存在正确答案替换回去的,想出这个方法的人也是真的nb!

#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<set>
#include<map>
#include<stack>
#include<cstring>
#define inf 2147483647
#define ls rt<<1
#define rs rt<<1|1
#define lson ls,nl,mid,l,r
#define rson rs,mid+1,nr,l,r
#define N 100010
#define For(i,a,b) for(int i=a;i<=b;i++)
#define p(a) putchar(a)
#define g() getchar() using namespace std;
int a[N],b[N],n,len;
void in(int &x){
int y=;
char c=g();x=;
while(c<''||c>''){
if(c=='-')y=-;
c=g();
}
while(c<=''&&c>=''){
x=(x<<)+(x<<)+c-'';c=g();
}
x*=y;
}
void o(int x){
if(x<){
p('-');
x=-x;
}
if(x>)o(x/);
p(x%+'');
}
int main(){
in(n);
For(i,,n)in(a[i]);
len=;
b[]=a[];
For(i,,n){
if(a[i]>=b[len])b[++len]=a[i];
else{
int x=upper_bound(b+, b+len+, a[i])-b;
b[x]=a[i];
}
// b[upper_bound(b+1, b+len+1, a[i])-b-1]=a[i];
}
o(len);
return ;
}

最新文章

  1. 得静下心来看python了。
  2. NET RichTextBox控件如何可以插入图像
  3. (转)postman中 form-data、x-www-form-urlencoded、raw、binary的区别
  4. CSS中的行为——expression
  5. Android,配置Activity为启动Activity(AndroidManifest.xml,application,intent-filter,MAIN,LAUNCHER)
  6. 关于在c#中引用外部dll文件,在页面中找不到命名空间
  7. Codeforces Beta Round #4 (Div. 2 Only) C. Registration system hash
  8. selenium中定位iframe框
  9. oracle数据库连接串格式
  10. MySQL导入乱码解决
  11. 【.net 深呼吸】监听剪贴板更新(针对Vista之后系统)
  12. Android图表库MPAndroidChart(三)——双重轴线形图的实现,这次就so easy了
  13. 关于Django字段类型中 blank和null的区别
  14. ECS之Git服务器搭建
  15. 快速高效实现微信小程序图片上传与腾讯免费5G存储空间的使用
  16. db2安装
  17. 洛谷P1101 单词方针
  18. C++11--随机数引擎和随机数分布&lt;random&gt;
  19. 设置RabbitMQ远程ip登录
  20. android权限permission大全(权限提醒)

热门文章

  1. Oracle12c 从入门到精通(第二版) 闫红岩 金松河 编著
  2. Confluence 6 下载和安装 MySQL 驱动
  3. mabatis的批量新增sql 初级的 初级的 初级的
  4. PDF如何去除背景,PDF去除背景颜色
  5. 使用Ultra Librarian将bxl文件转为OrCAD Capture CIS可识别的库文件(OLB)
  6. Java 画一个5X5的方形矩阵
  7. java中的相对目录问题
  8. sublime快捷键的使用
  9. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)
  10. PV-UV-QPS