大抵是二分前没初始化完全罢
比如,像这样:
ll l = 0, r = 1e18, ans;
while(l <= r){
ll mid = (l + r) >> 1;
if(check(mid)){
r = mid - 1;
ans = mid;
}else{
l = mid + 1;
}
}
改成这样即可:
ll l = 0, r = 1e18, ans = 1e18;
while(l <= r){
ll mid = (l + r) >> 1;
if(check(mid)){
r = mid - 1;
ans = mid;
}else{
l = mid + 1;
}
}