首页 > 其他分享 >二分答案

二分答案

时间:2023-07-23 15:56:29浏览次数:29  
标签:二分 int Luogu mid 答案 check

  • 二分答案:

    • 基本要点:

      • 二分答案就是将暴力找答案的过程变为二分找答案
      • 将最优化问题转变为可行性问题
      • 二分的答案要求有界性/单调性/二段性
      • 主要用于解决最大值最小化/最小值最大化问题
      • 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]]

标签:二分,int,Luogu,mid,答案,check
From: https://www.cnblogs.com/moilip/p/17575100.html

相关文章

  • 二分查找
    二分n个数找k是第几个(k有多个,输出第一个,如果不存在输出-1):如数列:$2$$7$$9$$1$$3$$5$$6$$2$$3$二分要保证:有序(若无序先排序),满足单调性数列单调不降Sort后:$1$$2$$2$$3$$3$$5$$6$$7$$9$#include<iostream>usingnamespacestd;intmain(){ inta[10]={0,1,......
  • 2023年最新50道Vue全套vue2+vue3面试题带答案汇总
    此文章不断更新,欢迎大家在评论区补充1.什么是MVVM?M-Model数据:它是与应用程序的业务逻辑相关的数据的封装载体V-View视图:它专注于界面的显示和渲染VM-ViewModel视图-数据:它是View和Model的粘合体,负责View和Model的交互和协作vue双向数据绑定是通过数据劫持结合......
  • 2023上半年Android高频面试题汇总(大厂真题+答案解析)
    小伙伴们大家好哇,不知道你们在找工作的时候是不是在力扣、在牛客网狂刷真题!可是有时候刷题的数量连起来可以绕地球三圈,但是面试却过不了第三轮!有没有一种可能就是你没有把握住重点!想想我们之前考试是不是老师划了重点,给了往期真题你考得分数高?题海战术是保底策略,能保证你大概率不会......
  • 二分查找模板
    目录一、整数二分1.1整数二分查找模板1.1.1寻找右边界的二分查找1.1.2寻找左边界的二分查找二、浮点数二分2.1浮点数二分查找模板三、使用STL进行二分查找3.1std::binary_search3.2std::lower_bound3.3std::upper_bound3.4std::equal_range一、整数二分二分查找分为整数......
  • python嵩天课后题答案第六章
    Python嵩天课后题答案第六章实现流程概述本文将指导刚入行的小白如何实现“python嵩天课后题答案第六章”。我们将按照以下步骤进行操作,并逐步给出具体的代码实现。实现步骤步骤操作1导入所需模块2定义一个函数answer_chapter_six()3在函数内部实现题目的解......
  • 二分图
    一.定义二分图是节点由两个集合组成,且两个集合内部没有边的图。换言之,存在一种方案,将节点划分成满足以上性质的两个集合。比如下图就是一个二分图,两个集合的元素可以用两种颜色表示,每条边上连接的点属于不同的集合,相同集合的两个点上没有边注意:二分图中不存在元素为奇数的环......
  • 2023夏季集训D1-贪心二分
    2023夏季集训D1贪心二分0x00前言24OIFXJ大佬来给我们讲课OrzOrz.讲课好难TAT.0x10贪心0x11经典贪心写了BestCowLineG/S和田忌赛马一位小伙从同学那里要来了一份BestCow代码Debug但没有发现代码没有输入,这是他思路3小时后发生的hack.田忌赛马太......
  • LeetCode 1201. Ugly Number III 数学+二分答案
    Anuglynumberisapositiveintegerthatisdivisibleby\(a\),\(b\),or\(c\).Givenfourintegers\(n\),\(a\),\(b\),and\(c\),returnthe\(n\)thuglynumber.Solution考虑如何二分答案,假设一个函数\(f(num,a,b,c)\)会得到\([1,num]\)中uglynumb......
  • LeetCode 875. Koko Eating Bananas 二分答案
    Kokolovestoeatbananas.Thereare\(n\)pilesofbananas,the\(i\)thpilehas\(piles[i]\)bananas.Theguardshavegoneandwillcomebackinhhours.Kokocandecideherbananas-per-houreatingspeedofk.Eachhour,shechoosessomepileofb......
  • LeetCode 1011. Capacity To Ship Packages Within D Days 二分答案
    Aconveyorbelthaspackagesthatmustbeshippedfromoneporttoanotherwithindaysdays.Theithpackageontheconveyorbelthasaweightof\(weights[i]\).Eachday,weloadtheshipwithpackagesontheconveyorbelt(intheordergivenby\(wei......