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

    总结—二分答案求解问题

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

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

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

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

    上一张网图:

    二分的基本思路是什么?

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

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

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

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

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

    这就是原理。

  • 相关阅读:
    Azkaban 简介(一)
    大数据平台搭建(Ambari +HDP)
    大数据平台比较-CDH、HDP、CDP
    Kylin 操作使用(六)
    Kylin 安装部署(五)
    Kylin 核心概念(四)
    数据流图
    android:sharedUserId
    Android的uid与UserHandle
    C++ 多态
  • 原文地址:https://www.cnblogs.com/fusiwei/p/13722382.html
Copyright © 2011-2022 走看看