总结—二分答案求解问题
我们经常会犯的一个错误就是不求慎解,只觉得“会了”就轻轻放下,其实根本没有真正的搞懂这些东西。
二分,简单算法,文化课都要学的东西。
当初对它的理解就是:很方便地求“最大值最小”/“最小值最大”。
当然,这也是二分答案算法的一个标志。但是我们需要思考的是:为什么二分可以求解“最大值最小”/“最小值最大”之类的问题。
上一张网图:
二分的基本思路是什么?
对于一个答案区间,判断它的中点是否符合条件,然后根据这个来缩小可行区间,来找到最优解。所以有了上面这个图,可以看出,绿色部分都是符合条件的,但是同样的符合条件,如果往最高代价去,肯定是不合算的。所以我们用二分答案找出了满足条件范围内的最低代价。
所以,其实我们二分答案的过程就是:
判断当前答案是否符合条件:如果是,往不满足条件的区域缩小范围,以试着求最低代价。如果不是,往满足条件的区域缩小范围,试着找到可行答案。
那么,所谓“最大值最小”“最小值最大”,其实“最大值”“最小值”是条件限制。就是这个“最大值/最小值”要符合题目给出的要求。然后“最小/最大”是让我们找最低代价。
于是就可以用二分答案来进行求解。
这就是原理。