蓝书所说:
据说,只有 10%10\%10% 的程序员能写对二分。二分的实现方法多种多样,但是其细节之处确实要仔细考虑。
此言不假,如果你是如下写法:
int l=1,r=R-L+1; while(l+1<r){ int mid=(l+r)>>1; if(check(mid)){ l=mid; }else r=mid; } cout<<l<<'\n';
把 lll 改为 000 有奇效。