二分板子①:
while (l + 1 < r)
{
ll mid = (l + r) >> 1;
if (func())//此时选择二分区域的右边的条件
l = mid;
else
r = mid;
}
二分板子②:
while (l < r)
{
ll mid = l + r >> 1;
if (func())r = mid;//此时选择二分区域的左边条件
else l = mid + 1;
}
★二分板子③(限定精度):
while (r - l >= 1e(题目需要的精度))
{
double mid = (l + r) / 2;
if (func())
l = mid;
else
r = mid;
}
最后都是输出l作为答案。