撅警钟-如果你二分WA50分
查看原帖
撅警钟-如果你二分WA50分
757869
hysbzdkf楼主2024/10/14 11:44

如题,二分过程中有如下内容找 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 即可。

2024/10/14 11:44
加载中...