社区讨论

关于二分答案

灌水区参与者 14已保存回复 22

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
22 条
当前快照
1 份
快照标识符
@lo2xwgiq
此快照首次捕获于
2023/10/23 21:34
2 年前
此快照最后确认于
2023/10/23 21:34
2 年前
查看原帖
如题,是否存在一种完全通用的二分答案板子。
经过楼主 多年不懈 的试验,目前已知:
  • 算法竞赛进阶指南上给的两个板子在某些情况下二分不到边界
  • 如下代码:
    CPP
      int binarySearch(int l, int r) {
       while (l <= r) {
           int mid = (l + r) >> 1;
           if (check(mid))
               ans = mid, l = mid + 1;
           else r = mid - 1;
       }
       return ans;
    }
    
    在部分情况下会出现问题(确认代码正确)。
所以楼主想要了解是否有一种无脑的二分答案方式(或者根据 check 的不同而变换,但能保证正确的方式)。

回复

22 条回复,欢迎继续交流。

正在加载回复...