永远不能变的二分

二分可以说是我一直以来的痛了,经常不是死循环就是答案错误,今天我终于弄翻了它,正确代码如下:

int mid_div(int l,int r)
{
    int left=l,right=r;
    while(left<right-1)//注意!这里若left==right-1,就死循环了
    {
        mid=(left+right)/2;
        if(dfs(mid,1))
          left=mid;
     
else right=mid;
  }
  
return left;
}
原文地址:https://www.cnblogs.com/linda-fcj/p/7355405.html