[Note] 倍增策略
[L4] 倍增策略
1. 生态位
-
倍增 是基于二进制拆解的策略 —— 任何正整数都可唯一分解为若干个 之和。
-
地位:分解问题的一种思维方式。
-
用途:用于解决 RMQ 问题的 ST 表,以及树上倍增 LCA 和 后缀数组 SA 等高级数据结构的基础。
-
识别:
-
静态区间查询:数组内容不发生修改。
-
幂等律:维护的信息满足 (如 )。
-
多次查询:询问次数极大(如 ),要求 时间内给出结果。
-
2. 逻辑支点
2.1 核心原理:倍增
-
状态定义: 设 表示以索引 为起点,长度为 的区间内的最值。
-
转移方程:
-
原理:一个 的区间可以完美拆分为两个长度相等的 区间。
2.2 幂等律
幂等律:与自身做运算,结果仍是自身。
-
原理:两个区间的重叠不会影响结果。
-
策略: 对于长度为 的查询区间,取 。
-
物理意义: 我们可以使用两个长度为 的区间(一个靠左起点 ,一个靠右终点 )实现对全区间的重叠全覆盖。
2.3 跳转逻辑
- 当运算不满足幂等性(如区间和)但满足结合律时,ST 表退化为倍增跳转。
- 通过二进制拆分跳步,实现 的跳转(如 LCA 寻找祖先)。
3. 实战部署
▶
ST 表维护 Max
1 | |
4. 知识关联
[Note] 倍增策略
http://miqiu.space/posts/880cf989/