简要题意:
给定一个 n n n 个点的无向图,有边权。有 k k k 个仓库,每个点属于一个仓库。
你需要选定 k k k 个仓库其中的一个使得所有点到它的最短路上的边权之和最小。求这个最小的和。
n ≤ 800 n \leq 800 n≤800.
一看到 n ≤ 800 n \leq 800 n≤800,算法很明显。有两种解决方案。
算法一
利用 Floyd \text{Floyd} Floyd.
可以用 O ( n 3 ) \mathcal{O}(n^3) O(n3) 的时间求出两两最短路。
下面大力统计即可。
时间复杂度: O ( n 3 ) \mathcal{O}(n^3) O(n3).
实际得分: 0 p t 0pt 0pt.
算法二
利用