二分答案

  • 二分答案:

    • 基本要点:

      • 二分答案就是将暴力找答案的过程变为二分找答案
      • 将最优化问题转变为可行性问题
      • 二分的答案要求有界性/单调性/二段性
      • 主要用于解决最大值最小化/最小值最大化问题
      • check函数求y一般用贪心
    • 基础模板:

      //最大化答案模板:
      bool check(int x){
          ...//计算y
          //返回可行区间
          return y<=m;//y随答案单调递减
         return y>=m;//y随答案单调递增
      }
      int bianryfind(){
          int l=下界-1,r=上界+1;
         while(l+1<r){
              int mid=r+l>>1;
            if(check(mid) l=mid;//左端往大跳
            else r=mid;
         }
         return l;
      }
      
      //最小化答案模板:
      bool check(int x){
          ...//计算y
          //返回可行区间
          return y<=m;//y随答案单调递减
         return y>=m;//y随答案单调递增
      }
      int bianryfind(){
          int l=下界-1,r=上界+1;
         while(l+1<r){
              int mid=r+l>>1;
            if(check(mid) r=mid;//右端往小跳
            else l=mid;
         }
         return r;
      }
      
    • 题型归纳:

      [[Luogu P1182 数列分段 Section II]]
      [[Luogu P2678 跳石头]]
      [[Luogu P1843 奶牛晒衣服]]
      [[Luogu Tracking Segments]]
      [[Luogu ABC293F Zero or One]]

posted on   MoiLip  阅读(71)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示