完了…没高中读了QwQ,我要去打工送快递!!!QwQ
传送门
题解
这题其实还是挺好玩的。
首先随便钦定一个点,临时作为快递中心 。
然后可以$O(n)$计算出每一组点对到快递中心的距离和。设点对到快递中心最大距离和为$Max$,可能有多个点对到快递中心的距离和都是$Max$那么就把它们都存下来。
如果当前的快递中心在任意一组距离最大的点对之间最短路径上,那么答案就是$Max$不可能再小了。
如果有任意两组点对,一组在当前快递中心的一棵子树里,另一组在另一棵子树里,那么答案同样也无法更小。
否则答案最优时的快递中心就有可能在当前唯一一棵有点对的子树中,那么就取这棵子树的重心作为临时快递中心,然后递归。由于每次取的都是重心,所以只会递归$\log n$层,总时间复杂度为$O(n\log n)$。
代码
1 |
|