“预处理DFS前序与子树区间,得到 $tin,tout$。祖先判定采用半开区间:$p$ 是 $v$ 的祖先当且仅当 $tin(p)\le tin(v)<tout(p)$。另用二进制倍增保存父亲…”
形式陈述
设
即
依次沿各跳表前进即可;诸幂都是同一个
最常见的实例是有根树上的父亲函数
直觉
这与快速幂是同一个思想:任何步数都是若干个二的幂之和,只要预先备好“跳
例子与边界
取一条父指针链
边界情形:倍增表是静态快照,若
推论与应用
树上的最近公共祖先是倍增的招牌应用:先把较深点提到同一深度;若两点已经相同,立即返回该点。否则从高位到低位,只在两点的
稀疏表把同一“按二的幂分块”思想用于静态区间查询,数与矩阵的快速幂是它在乘法结构上的化身。并行环境中的指针跳跃与链表排名也反复把后继距离加倍,但评价指标变成总工作与并行深度。函数图上的第
参考资料
- OI-Wiki contributors, OI-Wiki (2026), binary lifting.
- cp-algorithms contributors, Algorithms for Competitive Programming (2026), binary lifting.
- Michael A. Bender and Martín Farach-Colton, “The LCA Problem Revisited,” LATIN 2000, LNCS 1776, 2000.