N 個村莊,K 條有向路,每村有電話亭。需選一村作為中心電話亭,所有快遞員往返中心報到。另有 M 部電話,裝電話的村莊無需往返。求快遞員總路程最小值。
sum[i] = Σ (dis[i][j] + dis[j][i]),即所有村往返 i 的總距離sum 最小的村作為中心#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 200, INF = 1e7;
int dis[MAXN][MAXN], n, m, k;
void Floyd() {
for (int k=0; k INF) printf("No solution\n");
else printf("%d\n", minSum);
}
return 0;
}
dis[i][j] 不一定等於 dis[j][i]dis[center][i] + dis[i][center]