AOJ 0189 Convenient Location (Floyd)
阿新 • • 發佈:2017-08-18
cstring for sci end turn ans max red none
題意:
求某一個辦公室 到其他所有辦公室的 總距離最短 辦公室數 不超過10
輸入:多組輸入,每組第一行為n (1 ≤ n ≤ 45),接下來n行是 (x, y, d),x到y的距離是d
輸出:辦公室號 和 最短距離
#include <iostream> #include <stdio.h> #include <algorithm> #include <cstring> #include <string> using namespace std; const int INF = 0x3f3f3f3f; int n, dp[15][15]; int main() { while (cin >> n && n) { int V = 0; memset(dp, INF, sizeof dp); for (int i = 1; i <= n; ++i) { int x, y, v; cin >> x >> y >> v; dp[x][y] = dp[y][x] = v; V = max(V, max(x, y)); } for (int k = 0; k <= V; ++k) for (int i = 0; i <= V; ++i) for (int j = 0; j <= V; ++j) dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j]); int ans = INF, loc; for (int i = 0; i <= V; ++i) { int t = 0; for (int j = 0; j <= V; ++j) { if (i == j) continue; t += dp[i][j]; } if (t < ans) ans = t, loc = i; } cout << loc << ‘ ‘ << ans << endl; } return 0; }
AOJ 0189 Convenient Location (Floyd)