考虑dp(i)表示新上升子序列第i位数值的最小值.由于dp数组是单调的,所以对于每一个数,我们可以二分出它在dp数组中的位置,然后更新就可以了,最终的答案就是dp数组中第一个出现正无穷的位置。

代码非常简单:

 for(int i=;i<n;i++)dp[i]=oo;
for(int i=;i<n;i++)*lower_bound(dp,dp+n,A[i])=A[i];
printf("%d\n",(lower_bound(dp,dp+n,oo)-dp));

如果是最长不下降子序列的话只需要把第二行的lower_bound改成upper_bound就可以了。

如果是最长下降子序列或者最长不上升子序列的话只需要把原序列倒过来做一遍就好了。

最新文章

  1. [LeetCode] Walls and Gates 墙和门
  2. ubuntu 14.04 ns2.35 ***buffer overflow detected **: ns terminated解决办法
  3. Nodejs 高并发长链接TCP链接的服务器设计问题
  4. django开发个人简易Blog——构建项目结构
  5. Android自动化测试 - 自动化测试工具比较
  6. 远程桌面Default.rdp 中各个参数的含义(转)
  7. java初始化构造函数调用顺序
  8. HashMap存值
  9. vmdk虚拟机转换为OVF模板,导入esxi
  10. DataGridView点击排序完成后如何禁止自动排序
  11. 用canvas 绘制的饼状统计图、柱状统计图、折线统计图
  12. C#中指针使用总结
  13. jquery uploadifive使用
  14. poi做Excel数据驱动,支持.xls和.xlsx格式的excel文档,比起jxl强大不少
  15. 试水 Egret :TouchEvent与EnterFrame相关
  16. 友坚恒天.开发板(Cotex-A9 Exynos4412 开发板)
  17. Project下载提示检索 COM 类工厂中 CLSID 为 {36D27C48-A1E8-11D3-BA55-00C04F72F325} 的组件失败
  18. Intellj IDEA常用快捷键
  19. vue基础学习(二)
  20. 常用数学符号的 LaTeX 表示方法

热门文章

  1. Harbor + Https 部署
  2. 海边拾贝-A-算法篇
  3. RestTemplate的三种请求方式
  4. Python自定义注解
  5. 抓包工具 fidder4
  6. Java 函数式编程—@FunctionalInterface----functional interface
  7. dedecms用runphp功能,写for循环,@me输出不出来
  8. 2019-11-25-win10-uwp-通过命令行脚本开启旁加载
  9. DataTable 转List
  10. Asp.Net MVC 的19个管道事件