二分整型与浮点模板
2021.4.5 更新
重新复习,同样是 yxc 的整数二分模板(同样是二分条件可以将总区间一分为二,题目一般是查询左区间的右端点或者右区间的左端点),但特殊情况下不查询一个端点,查询的是一个区间,查询区间的左端点即查询一般情况下右区间的左端点,查询区间的右端点即查询一般情况下左区间的右端点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| bool check(int mid) {
}
int bsearch1(int l, int r) { while (l < r) { int mid = (l + r) / 2; if (check(mid)) r = mid; else l = mid + 1; } return l; }
int bsearch2(int l, int r) { while (l < r) { int mid = (l + r + 1) / 2; if (check(mid)) l = mid; else r = mid - 1; } return l; }
bool check(double mid) { }
double bsearch3(double l, double r) { while (r - l > eps) { double mid = (l + r) / 2; if (check(mid)) r = mid; else l = mid; } return l; }
|