好多二分代码都不一样,到底该用哪一个。
我在P10184这样过的:
while (l<r){
int mid=l+r>>1;
if (check(mid,a,m)){
l=mid+1;
}else{
r=mid-1;
}
}
但我在P1182这样写的:
while (l<r){
mid=l+r>>1;
if (check(mid)){
r=mid-1;
}else{
l=mid+1;
}
}
我又在 P2678 里面这样写的:
while (l<r){
mid=l+r+1>>1;
if (check(mid)){
l=mid;
}else{
r=mid-1;
}
}
根check函数有关吗