LCA·倍增

10 分钟

倍增法求 LCA:预处理 up[u][k] 表示 u 向上跳 2^k 步到达的祖先。查询时先把较深的点跳到与另一点同深度,再让两点一起按 2^k 由大到小往上跳,跳到它们的父亲刚好相同为止,那个父亲就是 LCA。单次 O(log n)。

小纸条

up[u][k] 表示 u 向上跳多少步的祖先?

登录 后可看答案

LCA·倍增 · 算法进阶 · op599 课程