如题,二分过程中有如下内容找 q 的左边界:
int ll=0,rr=n+1; while(ll<rr){ int mid=(ll+rr)/2; q=mid,r=n-q*k; if(r>=q&&q*k>=0) ll=mid+1; else rr=mid; }
其中的 q*k 会爆long long。
所以加上 &&q*k>=0 即可。