zoukankan      html  css  js  c++  java
  • 总结—二分答案求解问题

    总结—二分答案求解问题

    我们经常会犯的一个错误就是不求慎解,只觉得“会了”就轻轻放下,其实根本没有真正的搞懂这些东西。

    二分,简单算法,文化课都要学的东西。

    当初对它的理解就是:很方便地求“最大值最小”/“最小值最大”。

    当然,这也是二分答案算法的一个标志。但是我们需要思考的是:为什么二分可以求解“最大值最小”/“最小值最大”之类的问题。

    上一张网图:

    二分的基本思路是什么?

    对于一个答案区间,判断它的中点是否符合条件,然后根据这个来缩小可行区间,来找到最优解。所以有了上面这个图,可以看出,绿色部分都是符合条件的,但是同样的符合条件,如果往最高代价去,肯定是不合算的。所以我们用二分答案找出了满足条件范围内的最低代价。

    所以,其实我们二分答案的过程就是:

    判断当前答案是否符合条件:如果是,往不满足条件的区域缩小范围,以试着求最低代价。如果不是,往满足条件的区域缩小范围,试着找到可行答案。

    那么,所谓“最大值最小”“最小值最大”,其实“最大值”“最小值”是条件限制。就是这个“最大值/最小值”要符合题目给出的要求。然后“最小/最大”是让我们找最低代价。

    于是就可以用二分答案来进行求解。

    这就是原理。

  • 相关阅读:
    自执行函数的几种不同写法的比较
    Textarea与懒惰渲染
    备忘:递归callee.caller导致死循环
    围观STK
    某台机器上IE8抛“Invalid procedure call or argument”异常
    QWrap Selector之W3C版
    onclick与listeners的执行先后问题
    随机问题之洗牌算法
    selector4 之 巧妙的主体定义符
    神奇的"javascript:"
  • 原文地址:https://www.cnblogs.com/fusiwei/p/13722382.html
Copyright © 2011-2022 走看看