【辅助算法】整体二分
2016-05-04 15:50
183 查看
辅助算法在我这儿指在题目解题中不是主要算法,但是却在解题中充当着不可替代的作用。
整体二分。
一般在题目中出现最大值最小,最小值最大,第K大,第K小等字眼的时候我们就要警惕到底是应该贪心还是二分了。
这种问题主要有以下几种
对树上的一段区间求第K大
解答方法
码农方法:整体二分 + 树链剖分 + 线段树 + Treap
这种方法中我们对权值进行二分,然后对树上两点之间小于(或者是大于)MID的权值进行统计看是否符合第K大的要求,然后再不断调整左右区间端点。直到找到答案。
中国黑科技:倍增 + 主席树
这种方法中我们直接倍增找到LCA然后因为我们的主席树形态是一样的直接对四个区间做区间加减,直到找到第K大。
陈立洁大神给出的复杂度如下
整体二分。
一般在题目中出现最大值最小,最小值最大,第K大,第K小等字眼的时候我们就要警惕到底是应该贪心还是二分了。
这种问题主要有以下几种
对树上的一段区间求第K大
解答方法
码农方法:整体二分 + 树链剖分 + 线段树 + Treap
这种方法中我们对权值进行二分,然后对树上两点之间小于(或者是大于)MID的权值进行统计看是否符合第K大的要求,然后再不断调整左右区间端点。直到找到答案。
中国黑科技:倍增 + 主席树
这种方法中我们直接倍增找到LCA然后因为我们的主席树形态是一样的直接对四个区间做区间加减,直到找到第K大。
陈立洁大神给出的复杂度如下
相关文章推荐
- 100个常用的原生JavaScript函数
- 第四章 第三节 YARN调度
- 四则运算之加减法
- ZOJ 3326 An Awful Problem(模拟)
- scandir函数详解
- call()与apply()的区别
- 同时运行多个scrapy爬虫的几种方法(自定义scrapy项目命令)
- 平台电子签章实现方法
- hitTest:withEvent:方法流程
- javaweb学习总结(二十九)——EL表达式
- SCOM-Agent安装—基于Uinx\Linux
- javaweb学习总结(二十八)——JSTL标签库之核心标签
- c++模版函数
- servlet 的request 属性常用方法
- javaweb学习总结(二十七)——jsp简单标签开发案例和打包
- python获取外网IP并发邮件
- 全面解析windows下Memcache技术应用
- 文章标题
- Fiddler过滤指定域名
- 全面解析windows下Memcache技术应用