对于传送距离,有 $d(u,v) \le d(u,w) + d(v,w)$,所以可以按边权从小到大合并连通块的方式来处理。
不妨设对于 $S={1,2,\dots,n}$ 怎么计算成本之和。
考虑只保留 $\le r$ 的边,此时树会被分成若干块,而有会议参与者的连通块需要设立一个地点,才能使得 $r$ 这个成本可行。
如果此时能设立 $K$ 个会议地点,那么含有会议参与者的连通块的数量最多为 $K$ 个。
把所有边按边权从小到大排序,依次合并,记录合并时候的边权。那么对于 $S$ 每个节点都会恰好贡献一个这样的边权。
那么对于 $S$,成本之和就是 $S$ 所有合并时的边权中,最大的至多 $K$ 个之和。
考虑对于每个 $i$,怎么计算 $S={1,2,\dots,i}$ 的成本之和。
从小到大考虑,对于每个 $i$,它合并到一个比他序号要小的点的时候,这个权值不会由于比大 $i$ 的点后加入 $S$ 之中而改变。
故每个点合并时的代价可以 $O(n)$ 预处理出来。剩下的就是维护这个序列每个前缀的前 $K$ 大之和。拿一个小根堆简单维护即可。
时间复杂度 $O(n\log n+n\log k)$,空间复杂度 $O(n)$,可以通过。