1 条题解
-
0
很显然是一个单源有向图最短路问题。鉴于 的规模只有 ,且输入数据给出的是邻接矩阵,故考虑 Floyd。求出最短路后要注意输出的格式。时间复杂度 。
#include <cstdio> #include <algorithm> #include <utility> #define INF 0x3f3f3f3f using namespace std; int f[105][105]; pair<int, int> p[105]; int main() { int n, m; scanf("%d%d", &n, &m); for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) { scanf("%d", &f[i][j]); if (!f[i][j] && i != j) f[i][j] = INF; } for (int k = 1; k <= n; k++) for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) f[i][j] = min(f[i][j], f[i][k] + f[k][j]); for (int i = 1; i <= n; i++) p[i] = make_pair(f[m][i], i); sort(p + 1, p + n + 1); int lst = 0; printf("%d", m); for (int i = 2; i <= n; i++) { if (p[i].first == INF) break; if (lst < p[i].first) { while (lst < p[i].first) lst++, puts(""); printf("%d", p[i].second); } else printf(" %d", p[i].second); } return 0; }
- 1
信息
- ID
- 15
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者