【辅助算法】整体二分

辅助算法在我这儿指在题目解题中不是主要算法,但是却在解题中充当着不可替代的作用。
整体二分。
一般在题目中出现最大值最小,最小值最大,第K大,第K小等字眼的时候我们就要警惕到底是应该贪心还是二分了。
这种问题主要有以下几种

  1. 对树上的一段区间求第K大

解答方法

码农方法:整体二分 + 树链剖分 + 线段树 + Treap
这种方法中我们对权值进行二分,然后对树上两点之间小于(或者是大于)MID的权值进行统计看是否符合第K大的要求,然后再不断调整左右区间端点。直到找到答案。

中国黑科技:倍增 + 主席树
这种方法中我们直接倍增找到LCA然后因为我们的主席树形态是一样的直接对四个区间做区间加减,直到找到第K大。
陈立洁大神给出的复杂度如下

【辅助算法】整体二分_第1张图片

你可能感兴趣的:(算法)