浅谈二分问题

二分主要应用于一段区间求满足题意的单点(或单个状态)问题

区间一般呈现的是线性的关系

因此可以对区间每次分成两个部分,每次分割后进行一次判定,直到找到符合条件的点

思路的大致代码

#include<bits/stdc++.h>

using namespace std;


int main()
{
    int l = 0 ,r = R ,ans = 0;
    while(l <= r)
    {
        int mid = (l+r)/2;//二分区间
        if(check(mid))//每次检查
        {
            ans = mid;
            r = mid-1;
        }
        else
            l = mid+1;
    }
    cout<<ans<<endl;
}

猜你喜欢

转载自blog.csdn.net/ac_blood/article/details/80074106