整数二分板一:
当答案在[l, mid]时:
while(l < r)
{
int mid = l + r >> 1;
if(check(mid)) l = mid + 1;
else r = mid;
}
整数二分板二:
当答案在[mid + 1, r]时:
while(l < r)
{
int mid = l + r + 1>> 1;
if(check(mid)) l = mid;
else r = mid - 1;
}
小数二分
const double eps = 1e-6;//定义精度
while(r - l > eps)
{
double mid = l + r / 2;
if(check(mid)) l = mid;
else r = mid;
}