二分答案解题技巧

二分答案有一个很显著的特征:一定存在一个临界值,单调性只是临界值的一种,而不是全部。

临界值,就是寻找第一个/最后一个满足要求的值,这又分别对应着两个完全不同的二分模板,这里做题时推荐使用“第一个满足要求的值”,即对应着 STL 中的 upper_bound ,手写板对应着 这篇文章 里讲的模板。

标志词

一些标志性词语:

  • 最大值:最后一个满足要求的数
  • 最小值:第一个满足要求的数
  • 最大化最小值:最后一个满足要求的数
  • 最小化最大值:第一个满足要求的数
  • 第一个... :第一个满足要求的数
  • 最后一个 ...:最后一个满足要求的数

进阶技巧

一些进阶技巧:

  • 对于在某区间内存在临界值或有单调性,但放在全局看就不满足的话,可以把全局分割成几个小区间,对每个小区间进行二分。如 [ CSP-J 2022 ] 解密 中把一个二次函数以顶点为分界,在左右端分别进行查找;[ NOIp 2001 提高组 ] 一元三次方程 因为根与根之间的差大于等于 \(1\) ,所以可以每隔 \(1\) 为一个分界点,对于每个区间 \(1\) 分别进行二分即可。

常见套路

一些常见套路:

posted @ 2024-07-23 22:27  KS_Fszha  阅读(9)  评论(0编辑  收藏  举报