lower_bound函数详解 挑战程序设计P66
来源:互联网 发布:长期住宾馆怎么知乎 编辑:程序博客网 时间:2024/06/08 10:48
(挑战程序设计P66)
lower_bound这个STL函数,从已安排好的序列a中利用二分搜索找出指向满足ai >= k的ai的最小指针。类似的函数还有upper_bound,这一函数求出的是指向满足ai > k的ai的最小指针。
如下图所示:
图片来源
用这两个函数可以很快的求出长度为n的有序数组a中k的个数:
num = upper_bound(a, a+n, k) - lower_bound(a, a+h, k);
在求最长上升子序列问题中,用lower_bound会使代码更高效:
int dp[N];void solve(){ fill(dp, dp+n, INF); for(int i = 0; i < n; i++) *lower_bound(dp, dp+n, a[i]) = a[i];//在dp中找到大于等于a[i]的最小指针,也就是找到第一个a[i] printf("%d\n", lower_bound(dp, dp+n, INF) - dp);//找到第一个INF的指针,减去头地址就是上升序列的长度}
阅读全文
1 0
- lower_bound函数详解 挑战程序设计P66
- 挑战P66 有关计数问题的dp
- lower_bound函数
- lower_bound函数
- lower_bound函数
- lower_bound函数
- [.cpp]挑战程序设计问题的利器 freopen()函数
- lower_bound 查找函数
- lower_bound()函数用法
- 函数lower_bound()返回值
- lower_bound函数的使用
- STL函数 lower_bound / upper_bound
- lower_bound和upper_bound函数
- C++ 函数lower_bound & upper_bound
- 函数lower_bound()的使用
- lower_bound()函数用法
- lower_bound()函数和upper_bound()函数
- 二分--lower_bound()函数,upper_bound()函数
- 解决Maven依赖本地仓库eclipse报错的问题
- Echart关于柱状图上添加label并且纵向排列文本
- mysql主从复制原理分析
- 什么是动态规划?动态规划的意义是什么?
- mysql数据库,使用dos命令备份和解决编码问题
- lower_bound函数详解 挑战程序设计P66
- python3.5安装easy_install和pip
- java虚拟机启动参数分类详解
- pod 导入第三方 linker command failed with exit code 1 (use -v to see invocation)
- ActiveMQ的消息对列的使用
- java之外观模式
- Linux服务器间做免密钥登录
- Git常用指令
- 线程池