<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      20251020 - 二分 總結

      前言

      按照以往慣例,今天不是 20251020 - 二分 & 分治嗎

      二分

      使用二分的原因

      在有序數組或有單調性的題目中,可以使用二分查找/二分答案來優化枚舉。

      原理

      每次指定一個區間,把他劈成兩半,排除不合法的區域,重復執行直到得到答案。

      寫法:

      方法零:

      int erfen(int x){
          int pos = lower_bound(a.begin(),a.end(),x)-a.begin();
          return a[pos] == x ? pos : -1;
      }
      

      方法一:

      int erfen(int x){
          int l = Left_Interval - 1,r = Right_Interval + 1;
          while(l + 1 < r){
              int mid = (l + r) >> 1;
              if(check(...)){
                  l = mid;
              }else{
                  r = mid;
              }
          }
          return a[r] == x ? pos : -1;
      }
      

      方法二:

      int erfen(int x){
          int l = Left_Interval,r = Right_Interval,ans = 0;
          while(l <= r){
              int mid = (l + r) >> 1;
              if(check(...)){
                  l = mid + 1;
                  ans = mid
              }else{
                  r = mid - 1;
                  // ans = mid
              }
          }
          return a[ans] == x ? pos : -1;
      }
      

      方法三(不正經MZC):

      int erfen(int x){
          int l = Left_Interval - 1,r = Right_Interval;
          while(l < r){
              int mid = (l + r + 1) >> 1;
              if(check(...)){
                  l = mid;
              }else{
                  r = mid - 1;
              }
          }
          return a[...] == x ? pos : -1;
      }
      

      二分答案

      再有單調性的題目中,可以通過二分答案,把時間復雜度從 \(O(...n)\) 優化到 \(O(...log_2n)\)

      對于 \(n = 10^5\) 時,二分答案很有用!

      例題:[跳石頭](20251020 - 二分 - Virtual Judge)

      想法一:暴力

      枚舉每一個最長間隔,在貪心判斷是否可行!

      想法二:二分答案

      可以發現,當間隔越長,可以放的石頭就越少,所以考慮二分答案!

      void solve(){
        scanf("%d%d%d",&l,&n,&m);
        for(int i = 1;i <= n;i++)
          scanf("%d",&a[i]);
        a[++n] = l; // 至于為什么?T_T,最后一個石頭跳到終點也可能跳不到,可惜了罰時了!
        int l = -1,r = 1e9 + 1;
        while(l + 1 < r){
          int mid = (l + r) / 2;
          if(check(mid))  
            l = mid;
          else
            r = mid;
        }
        printf("%d\n",l);
      }
      
      posted @ 2025-10-20 18:43  yl2026  閱讀(7)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚州av第二区国产精品| 欧美激情一区二区三区成人| 亚洲国产精品第一二三区| 亚洲精品一区二区三区色| 免费a级毛片18以上观看精品 | 国产成人亚洲综合图区| 久久夜色撩人精品国产小说 | 通河县| 在线播放国产精品三级网| 长腿校花无力呻吟娇喘| 爆乳女仆高潮在线观看| 一个色综合国产色综合| 国产激情av一区二区三区| japanese边做边乳喷| 国产AV大陆精品一区二区三区| 99九九热久久只有精品| 一区二区三区四区精品视频| 欧美成人午夜在线观看视频| 亚洲色偷偷色噜噜狠狠99| 日本高清日本在线免费| 人妻丝袜无码专区视频网站| 亚洲 欧美 唯美 国产 伦 综合| 91精品久久久久久无码人妻| 亚洲精品一区二区妖精| 高级艳妇交换俱乐部小说| 在线看免费无码av天堂| 丁香五月亚洲综合在线国内自拍 | 精品人妻日韩中文字幕| 国产成人精品一区二区无| 在线中文一区字幕对白| 美女胸18大禁视频网站| 国内极度色诱视频网站| 男人扒女人添高潮视频| 欧美va天堂在线电影| 久久精品人人槡人妻人人玩av| 久久精品一区二区三区综合| 欧美成人h精品网站| 国产午夜精品久久精品电影| 成人一区二区三区在线午夜 | 亚洲成人av在线高清| 国产福利姬喷水福利在线观看|