码迷,mamicode.com
首页 > 其他好文 > 详细

永远不能变的二分

时间:2017-08-14 00:29:49      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:开始   记录   ret   跳过   else   代码   错误   space   turn   

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

int mid_div(int l,int r)
{
    int left=l,right=r;
    //left从0还是从1开始都行 
    while(left<=right)
    {
        space=0;
        mid=(left+right)/2;
        if(dfs(mid,1))
        {
            ans=mid;
    //先记录下来,万一后面跳过了,就返回一直很"保守"的ans 
            left=mid+1;//上跳            
        }
        else
            right=mid-1;//下跳 
    }
    return ans;
}

 

永远不能变的二分

标签:开始   记录   ret   跳过   else   代码   错误   space   turn   

原文地址:http://www.cnblogs.com/linda-fcj/p/7355405.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!