枚举直径中点所在的边 $(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)$。
QOJ.ac
QOJ
As we are currently experiencing an overwhelming number of web requests for fetching user submissions, we have temporarily disabled the full submissions list. You must now be logged in to view submissions.
Discussion #231 for Problem #3045. Minimum Diameter Spanning Tree
Type: Editorial
Status: Open
Posted by: jiangly
Posted at: 2025-12-13 00:22:36
Last updated: 2025-12-13 00:22:39
题解
Comments
No comments yet.