二分搜索法(思维拓展)

版权声明:希望能帮到弱校的ACMer成长,因为自己是弱校菜鸡~~~~ https://blog.csdn.net/Mr__Charles/article/details/82871282

定义:

  二分搜索法,是通过不断缩小解可能存在的范围,从而求得问题最优解的方法。

简单用途:

  从有序数组中查找某个值,这是一开始学习二分搜索的经典例子。

拓展用途:

  用于求最优解的问题,如:满足某个条件C(x)的最小(最大)x。

  首先我们将区间的左端点初始化为不满足C(x)的值,右端点初始化为满足C(x)的值。然后每次取中点mid = (L+R)/2,判断C(mid)是否满足并缩小范围,直到(L,R]足够小了为止。最后R就是要求的最小值(这句话有歧义,主要还是看题目,不一定答案就是R)。最大值问题也可以用同样方法。

(PS:L为左端点,R为右端点)

经典的三类拓展:

  1.假定一个解并判断是否可行

  2.最大化最小值

  3.最大化平均值

练习题:

  

猜你喜欢

转载自blog.csdn.net/Mr__Charles/article/details/82871282