永远不能变的二分
二分可以说是我一直以来的痛了,经常不是死循环就是答案错误,今天我终于弄翻了它,正确代码如下:
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;
}
二分可以说是我一直以来的痛了,经常不是死循环就是答案错误,今天我终于弄翻了它,正确代码如下:
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;
}