1 条题解
-
1
#include <bits/stdc++.h> using namespace std; int d[1003][1003];//储存前面一个点到后面一个的距离 signed main() { ios::sync_with_stdio(0); cin.tie(0);//优化,可以不管 int n, v0; cin >> n >> v0; memset(d, 0x3f, sizeof(d));//初始化极大值 string s1; for (int i = 1; i <= n; i++)//读图 { for (int j = 1; j <= n; j++) { cin >> s1; if (s1 != "-") { d[i][j] = stoi(s1); } } } for (int j = 1; j <= n; j++)//v0到每个点 { for (int l = 1; l <= n; l++)//每个点到其他点 {d[v0][j] = min(d[v0][j], d[v0][l] + d[l][j]);//如果距离比原来小重置 } } for (int i = 1; i <= n; i++) { if (i != v0 and d[v0][i] <= 1100000) { printf("(%d -> %d) = %d\n", v0, i, d[v0][i]); } else if (i != v0) { printf("(%d -> %d) = INF\n",v0,i); } } }
- 1
信息
- ID
- 391
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 8
- 标签
- 递交数
- 21
- 已通过
- 5
- 上传者