数据应该有误,可能有大于 NNN 的编号,可以特判一下:(不知道这么@管理员):
for (int i = 1; i <= M; i++) { int u, v, w; cin >> u >> v >> w; if (u > N || v > N) continue; dist[u][v] = dist[v][u] = min(dist[u][v], w); }