【笔记】学习笔记2022-12-12
2022-12-12
知识
三分
三分可求单峰函数的极值点。
对于区间 \([l, r]\),求极值点。
可以在 \([l, r]\) 中找到两个三等分点 \(lmid\) 与 \(rmid\)。
比较两点点值,若左边较小,舍弃右边,否则舍弃左边
对于正确性,分为三种情况:
- 极值点在 \(lmid, rmid\) 之间
- 极值点在 \(lmid, rmid\) 左侧
- 极值点在 \(lmid, rmid\) 右侧
经过舍弃后,区间均包含极值点。
小trick:三分法每次操作会舍去两侧区间中的其中一个。为减少三分法的操作次数,应使两侧区间尽可能大。因此,每一次操作时的 \(lmid\) 和 \(rmid\) 分别取 \(mid-\varepsilon\) 和 \(mid+\varepsilon\) 是一个不错的选择。
整体二分
对于多询问二分,可以离线处理,放在一起,每次选取共同的 \(mid\) 进行二分处理。
cdq分治
对于大问题,分成小问题分别解决,后进行合并,类似归并排序。
例题
三分
模板题,三分位置求函数值,比较。
整体二分
Luogu3527 [POI2011]MET-Meteors
(弃) 在调了在调了。
cdq分治
模板题,可以使用 bitset,cdq 分治,KD-Tree 等方式解决。这里用 cdq 分治解决。
对于三维,我们很难一起解决,于是可以一维一维解决。
对于第一维,直接排序,对于第二维,cdq 分治,分别排序后合并处理,第三维直接拿数据结构维护即可。