三分法
整理日期参照赛事或原文时间线安排,不代表原始发表时间。实际整理于 2026-10-24。
原文涉及的赛题或内容至少已到 2020-05-16,整理日期据此安排;其余保留难度排序。
时间依据
- Codeforces Round 464 (Div. 2):2018-02-17
- Codeforces Round 514 (Div. 2):2018-10-06
- Codeforces Round 643 (Div. 2):2020-05-16
难度为阅读建议,可从 ACM 学习索引 按阶段阅读。
三分法是二分法的变种,他最基本的用途是求单峰函数的极值点。
- 三分适用的情况:有唯一的最大值,满足最大值左侧严格单调递增,右侧严格单调递减(或左减右增)。强调严格单调,这样在确定最值是才能判断最值的位置,否则三分法不能缩小左右边界。
三分整数模板
整数的三分可能具有不确定性,可以通过改变while循环的条件while(l+3<r)来缩小范围,再通过小范围暴力更新答案
- 对于边界的暴力不仅省去了处理边界,甚至常数也有提升,原因未知
凹函数的极小值
1 | int sfmin(){ |
凸函数的极大值
1 | double sfmax(){ |
三分小数模板
凸函数的极大值
1 | double l, r; |
凹函数的极小值
1 | double l, r; |
三分例题
wls的例题
https://codeforces.com/contest/1355/problem/E
思维题可以用三分暴力
https://codeforces.com/contest/939/problem/E
https://www.luogu.com.cn/problem/solution/CF939E
计算几何(待写
https://www.cnblogs.com/lfri/p/9944289.html
https://codeforces.com/contest/1059/problem/D
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 爱飞鱼的blog!
