hack&关于数据的问题
查看原帖
hack&关于数据的问题
429147
hxhhxh楼主2023/11/27 10:55
2 1
-4 -3
1 1 2 1

能把我的代码卡成死循环,因为我的二分是错的:

while(l<r){
  mid=((0ll+l)+r)/2;
  if(cnt(L,R,mid)>=k) r=mid;
  else l=mid+1;
}

C++ 中的除法 / 是向 00 取整,有 (-7)/2==3,我就寄了。

把 /2 换成 >>1 就是对的,因为 >>1 相当于时向下取整的 /2。

但是这样写能过。原因是数据中根本没有负数,

请求加强数据或者修改数据范围。

2023/11/27 10:55
加载中...