ABC298Ex Sum of Min of Length
这个 Ex 好水啊。
因为是求 $\sum\limits_{i = 1} ^ n\min \{d(i, L), d(i, R)\}$ 的值,考虑讨论 $d(i, L)$ 和 $d(i, R)$ 的大小。
令 $p = \text{LCA}(L, R)$,$dep_L > dep_R, dist = dep_L + dep_R - 2\times dep_p$,$now$ 满足 $dep_L - dep_{now} = \lfloor\dfrac{dist}{2}\rfloor$
则 $L$ 一定在 $now$ 的子树内,且对于 $\forall i\in \{\text{subtree}(now)\}$ 时均有 $d(i, L) \le d(i, R)$,否则 $d(i, L) > d(i, R)$。其中 $\text{subtree}(x)$ 表示 $x$ 的子树。
容易想到求一个点到其他点的距离和。
令 $val_i$ 表示 $\sum\limits_{j = 1}^{n} d(i, j)$。
在 dfs 时处理一下即可,显然可以做到 $\mathcal{O}(n)$。
最后再将 $dist$ 奇偶讨论一下即可。
时间复杂度:$\mathcal{O}(n + m\log n)$,可以使用线性 LCA 做到 $\mathcal{O}(n + m)$