ABC321题解

发布时间 2023-09-28 22:44:35作者: feather_life

以后应该都是从 E 开始。

E:

problem

LCA题。

我们枚举向上跳 \(t\) 步,跳到了 \(y\)

假如说 \(t = 0\) 那么我们计算 \(\text{clac}(x,k)\) 即可。(\(\text{clac}\) 怎么算放在最后讲)

否则 计算 \(\text{clac}(y,k) - \text{clac}(x >> (t - 1),m - t - 1)\) 。(建议自己理解一下)

那么如何算 \(\text{clac}\) 呢?

我们发现点的编号是连续的,所以我们只需要求出最小的值和最大的值即可。

所以我们要求的就是以 \(x\) 为根节点,深度为 \(d\) 的每一个点。

所以就做出来了!

code