终极二分万能模板
作者:互联网
终极二分万能模板
① 整数域二分
情况一:
适用于 \(.....V000000\) \(( . 表示false, 0 表示true)\)
int bsearch_1(int l, int r)
{
while (l < r)
{
int mid = l + r >> 1;
if (check(mid)) r = mid;
else l = mid + 1;
}
return l;
}
情况二:
适用于 \(000000V......\) \(( . 表示false, 0 表示true)\)
while (l < r)
{
int mid = l + r + 1 >> 1;
if (check(mid)) l = mid;
else r = mid - 1;
}
return l;
② 实数域二分
double l = -100, r = 100;
while (r - l > 1e-8)//精度
{
double mid = (l + r) / 2;
if (check(mid)) r = mid;
else l = mid;
}
标签:二分,int,mid,else,while,终极,check,模板 来源: https://www.cnblogs.com/xiaofeilong7816/p/15077285.html