二分答案
xidianoj例题:
具有单调性,检验每一个答案是否可行。
通过二分,找一个无法直接找到的答案。
一个周全的调度:
二分答案加全排列检验是否可行。
三分法
凸函数的极值
计算几何问题,求函数机制, dp优化
分治
把大问题划分成小问题
可以进行记忆化搜索
Painting例题:
区间分治求解。
平面上点最近点对距离问题:
分治处理,每次从中间分,然后求左边点的最小距离,右边点的最小距离,然后算出来一个点在左侧一个点在右侧情况的最小距离,求最小。
处理过程中,判断两侧的最小距离d = min(左, 右),然后判断中间点的过程时,剪掉那些水平距离到mid大于d的点,根据鸽窝原理,左边每一个点只需要枚举右边的六个点即可。
树上的分治问题
主要解决树上有关路径问题
点分治:找树的重心,然后分治
边分治:找一条边,分治两边的树
树的重心求法:
删掉当前节点,得到的最大的树的大小就是dfs序中它所有的儿子的大小和他父树中的大小的最大值,维护这个值最小。 一遍dfs得到sz[]即可
poj例题求树上两点距离小于k的点对个数:
点分治处理
整体二分与cdq分治
重要思想:修改查询同时
整体二分解决区间第k大
cdq分治:动态修改,静态查询
偏序问题cdq解法