题目中的空间站和航道构成一棵树。可以修建的新航道等价于:对于任意一个空间站 w,若存在两条原始航道 (u,w) 和 (w,v),则可以在 u 和 v 之间修建新航道。也就是说,所有距离恰好为 2 的空间站对均可以修建直达航道。管理部门可以自由选择部分或全部这样的候选航道进行修建,目标是使 ∑i=1n∑j=1nd(i,j) 最小。
我们把所有可能的新航道按照形态分为两类:
任何一条新航道被修建后,原本需要走 2 步的最短路径变为 1 步,使得通过该路径的有序对距离之和减少 1。问题转化为:在原始树的总距离和上,尽量多地减去新航道能够“节省”的距离。
在宇宙中有 n 个空间站,初始时空间站之间通过 n−1 条双向航道连接,保证任意两个空间站可达,且不存在环。航道管理部门发现,若存在一个空间站 w,使得在初始航道中存在 (u,w) 和 (w,v),那么可以额外在 u 与 v 之间修建一条新航道。管理部门可以在这些候选新航道中任意选择若干条进行修建。
定义 d(i,j) 为修建后网络中空间站 i 到 j 的最短路径长度(即经过的最少航道数)。管理部门希望最小化所有有序空间站对距离之和,即 ∑i=1n∑j=1nd(i,j)。请你计算这个最小值。
约束:空间站数量 n 满足 2≤n≤2×105。初始航道信息为 n−1 行,每行两个整数表示一条航道的两端点,编号均为 1 到 n 之间,保证输入是一棵树。
第一行输入一个整数 n,表示空间站的数量。 接下来 n−1 行,每行包含两个整数 u 和 v,表示初始存在连接 u 与 v 的航道。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.