整数二分
情况一:左半段满足,右半段不满足 → 求最后一个满足的点
1 | bool check(int x); // 判断 x 是否满足性质 |
情况二:右半段满足,左半段不满足 → 求第一个满足的点
1 | int solve_l(int l, int r) { // 找第一个满足性质的点 |
实数二分
固定精度
1 | const double eps = 1e-8; |
固定迭代次数
1 | double solve(double l, double r) { |
二分查找(STL)
头文件:<algorithm>
lower_bound(begin, end, val):返回第一个>= val的迭代器upper_bound(begin, end, val):返回第一个> val的迭代器