MnZn 90pt 性感代码求调教 Wa on 4#
查看原帖
MnZn 90pt 性感代码求调教 Wa on 4#
431658
冷却心月明かり楼主2024/10/27 17:46

Record.

#include <bits/stdc++.h>
using namespace std;
const int N = 210;
int n, m, dist[N][N], Ans[N][N];
int main() {
	ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0);
	cin >> n >> m;
	memset(dist, 0x3f, sizeof dist);
	for (int i = 1; i <= n; i ++) dist[i][i] = 0;
	for (int i = 1; i <= m; i ++) {
		int u, v, w; cin >> u >> v >> w;
		dist[u][v] = dist[v][u] = min(dist[u][v], w);
	}
	for (int k = 1; k <= n; k ++) for (int i = 1; i <= n; i ++)
		for (int j = 1; j <= n; j ++) 
			dist[i][j] = dist[j][i] = min(dist[i][j], dist[i][k] + dist[k][j]);

	for (int k = 1; k <= n; k ++) for (int i = 1; i <= n; i ++)
		for (int j = 1; j <= n; j ++) if (i != j && j != k && i != k)
			if (dist[i][k] + dist[k][j] == dist[i][j]) {
				if (Ans[i][j] == 0) Ans[i][j] = k;
				else Ans[i][j] = -1;
			}
	set<int> s;
	for (int i = 1; i <= n; i ++) for (int j = 1; j < i; j ++)
		if (Ans[i][j] > 0) s.insert(Ans[i][j]);
	if (s.empty()) cout << "No important cities.";
	else {
		for (int i : s) cout << i << " ";
	}
	return 0;
}
2024/10/27 17:46
加载中...