ABC298Ex Sum of Min of Length

ABC298Ex

这个 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)$

评测记录

posted @ 2023-04-21 18:26  Pengzt  阅读(0)  评论(0编辑  收藏  举报  来源