洛谷P4408

首先要明确:

  • 题目中「任两个居住点间有且仅有一条通路」说明给出的是一棵树,无须再自己求 MST。

  • (a,b,c) 不会重合。

显然可以发现,(a,b) 两点一定在树的直径的两端。为什么?

因为如果只有在这两个位置才能保证我们选择的 (c) 到较近位置的距离和 (ab) 间的距离最远。可以自己画图,比较好理解。

确定了 (ab) 之后,需要再确定 (c) 点的位置。我们分别从 (a,b) 跑一个最短路,然后线性枚举这个位置 (c) 就可以。

答案就是 ( ext{dis}(a,b)+max{min{ ext{dis}(a,c), ext{dis}(b,c)}})

原文地址:https://www.cnblogs.com/KnightL/p/15480955.html