// 模版1
while(l < r){
int mid = l + r + 1 >> 1;
if(check(mid)) l = mid;
else r = mid - 1;
}
// 模版2
while(l < r){
int mid = l + r >> 1;
if(check(mid)) r = mid;
else l = mid + 1;
}
// 反正就是始终要+1
// 模版1: 当l = mid时,mid = l + r + 1 >> 1; 上面+1,下面就要-1
// 模版2: 否则 +1
03-27