QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: jiangly

Posted at: 2025-12-13 00:22:36

Last updated: 2025-12-13 00:22:39

Back to Problem

题解

枚举直径中点所在的边 $(u,v)$,我们想要最小化中点到所有点的最大距离。假设固定了 $u$ 和 $v$ 子树内分别的最远点 $far_u$ 和 $far_v$,则每个点只需要满足 $dis(x,u)\le dis(far_u,u)$ 或 $dis(x,v)\le dis(far_v,v)$。枚举 $far_u$,则 $far_v$ 一定是 $dis(x,u)>dis(far_u,u)$ 的点中 $dis(x,v)$ 最大的点 $x$,这个可以对每个点的距离数组排序后均摊 $O(1)$ 计算。时间复杂度 $O(N^3)$。

Comments

No comments yet.