因为是最长上升的,可以用一个数组储存上升的序列,如果后一个数字比数组的最大数字还大,就加到末尾去,如果不大于,那么就可以把这个数组中比他大的数字替换掉,因为如果数字更小,后面上升序列更长的可能性更大,这样也不会改变之前最大的数字;最小同理

#include<iostream>
#include<cstdio>
#include<algorithm>
#define sf scanf
#define pf printf
#define rep(i,a,b) for(int i=a;i<b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
int a[100005];
int low[100005];
int h[100005];
int find(int le,int x)
{
int l=1,r=le,mid;
while(r>l)
{
mid=(l+r)/2;
if(x>=h[mid])
r=mid;
else
l=mid+1;
}
return l;
}
int main()
{
int n,ans=1;
sf("%d",&n);
rep(i,1,n+1)
sf("%d",&a[i]);
// low[1]=a[1];//上升的
// rep(i,2,n+1)
// {
// if(low[ans]<a[i])
// low[++ans]=a[i];
// else
// {
// int j=lower_bound(low+1,low+ans+1,a[i])-low;
// low[j]=a[i];
// }
// }
int ans1=1;//下降的
h[1]=a[1];
rep(i,2,n+1)
{
if(h[ans1]>a[i])
h[++ans1]=a[i];
else
{
int j=find(ans1,a[i]);
h[j]=a[i];
}
}
pf("%d\n",ans1);
return 0;
}

最新文章

  1. 如何去除My97 DatePicker控件上右键弹出官网的链接 - 如何debug混淆过的代码
  2. 转 如何理解 重要性采样(importance sampling)
  3. Java中多线程使用匿名内部类的方式进行创建3种方式
  4. 【转】 FPGA设计的四种常用思想与技巧
  5. 在 eclipse 中设置每行的字数
  6. 排他锁Lock
  7. Blogger支持Mobile行动版网页 - Blog透视镜
  8. Windows 桌面边栏小工具开发入门
  9. java覆写hashcode方法
  10. JPA的学习
  11. 如何使用kafka增加topic的备份数量,让业务更上一层楼
  12. Mongo基础 索引的使用
  13. Finance财务软件(自定义报表专题)
  14. Javascript中Base64编码解码的使用实例
  15. uva-10420-排序
  16. Entity Framework的几种初始化器
  17. vmdk-&gt;vhdx
  18. ExecutorService的四种线程池
  19. [i.MX6q]i.MX6q处理器,linux操作系统平台搭建 从SD卡启动系统
  20. Visual Studio Code调试electron主进程

热门文章

  1. JQ01
  2. JAVA:测试java虚拟机支持的最大内存 Xmx 值?Tomcat 内存溢出?(转)
  3. Nginx之——日志按日期分割的实现(基于CentOS操作系统)
  4. Mac下不用重复输入ssh-key的密码
  5. linux go环境安装和基本项目结构
  6. qt5信息提示框QMessageBox用法
  7. jquery-卡片翻转
  8. curl命令转换成php源码
  9. python读取excel(xlrd)
  10. linux服务器挂掉自动重启脚本(转)