利用C++优势快速打完最长不下降子序列
来源:互联网 发布:linux临时设置环境变量 编辑:程序博客网 时间:2024/04/26 23:17
n log n求最长不下降子序列
我们设d[i]表示长度为i的最长不下降子序列最尾元素的最小值,显然d[i]<=d[i+1],d数组符合单调性。因此对于a[i]只需在d数组中二分即可。
lower_bound与upper_bound
lower_bound(a+l,a+r+1,key)表示在a数组的l~r范围进行二份查找(注意你需要保证这个数组的单调性,可以加cmp来表达他的单调性,默认单调性是非递减),找到第一个>=key的位置并返回。
而upper_bound则是找到第一个>key的位置返回。
求最长不下降子序列可以利用C++STL中algorithm库里的这两个东西来减少代码量。附代码
fo(i,1,n){ k=upper_bound(d+1,d+n+1,a[i])-d; ans=max(ans,k); d[k]=min(d[k],a[i]); }
如果要求最长上升子序列改成lower_bound即可。
0 0
- 利用C++优势快速打完最长不下降子序列
- wikioi最长不下降子序列c
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 最长不下降子序列
- 判断请求URL中是IP还是域名
- ios高级工程师开发面试题
- 在Linux里设置环境变量的方法(export PATH)
- 【11/02】 iOS开发成长之路,【控件初始化方法封】
- -Dmaven.multiModuleProjectDirectory system propery is not set.IDEA14 中Maven报错
- 利用C++优势快速打完最长不下降子序列
- Windows远程到Linux
- AbstractList 抽象类 源代码
- Android源码分析-资源加载机制解析
- 一些知识点的初步理解_2(流形学习,ing...)
- 【日常学习】【数学】【众数】codevs4419 FFF团卧底的菊花题解
- 高端的N 校联考题
- C++ 宏定义动态加载、工厂模式
- C#程序员开发WinForm必须知道的 Window 消息大全