一句话理解
2^k 跳跃:任意距离拆成二进制。
为什么要学
上跳 dep 差。
讲解
从高位 k 到 0,能跳就跳。
例子
for (int k = LOG; k >= 0; k--)
if (dep[fa[k][u]] >= depv) u = fa[k][u];
先对齐深度。
常见错误
- 从低位跳可能错(对齐祖先时要从高位)。
- fa[k][u]=0 没判。
第 404 课
2^k 跳跃:任意距离拆成二进制。
上跳 dep 差。
从高位 k 到 0,能跳就跳。
for (int k = LOG; k >= 0; k--)
if (dep[fa[k][u]] >= depv) u = fa[k][u];
先对齐深度。
上跳时一般从大的 2^k 试到小的。
Ctrl / ⌘ + Enter 运行 · Tab 缩进
左右方向键也可翻课