UVA - 567 Risk(Floyd)
来源:互联网 发布:欠网络贷款不还怎么办 编辑:程序博客网 时间:2024/05/23 02:00
UVA - 567 Risk(Floyd)
题目链接
题目大意:有20个城市,输入给19行,每行先给有几个数,然后接着给出这几个数,代表的是后面的城市编号和行编号(城市编号)有一条边,每条边的权值为1.接着m个查询任意两个城市之间的最短距离。
解题思路:求任意两个顶点之间的距离,用floyd。
代码:
#include <cstdio>const int maxn = 21;const int INF = 0x3f3f3f3f;int G[maxn][maxn];void Floyd () { for (int k = 1; k < maxn; k++) for (int i = 1; i < maxn; i++) for (int j = 1; j < maxn; j++) if (G[i][j] > G[i][k] + G[k][j]) G[i][j] = G[j][i] = G[i][k] + G[k][j];}int main () { int n, m, u, v, cas = 0; while (scanf ("%d", &n) != EOF) { for (int i = 1; i < maxn; i++) for (int j = 1; j < maxn; j++) G[i][j] = (i == j) ? 0 : INF; for (int i = 0; i < n; i++) { scanf ("%d", &v); G[1][v] = G[v][1] = 1; } for (int i = 2; i < 20; i++) { scanf ("%d", &n); for (int j = 0; j < n; j++) { scanf ("%d", &v); G[i][v] = G[v][i] = 1; } } Floyd(); scanf ("%d", &m); printf ("Test Set #%d\n", ++cas); while (m--) { scanf ("%d%d", &u, &v); printf ("%2d to %2d: %d\n", u, v, G[u][v]); } printf ("\n"); } return 0;}
0 0
- UVa 567 - Risk (Floyd)
- Uva - 567 - Risk(Floyd)
- UVA - 567 Risk(Floyd)
- UVA 567 risk FLOYD
- UVA 567 - Risk (floyd)
- UVa 567 - Risk(Floyd)
- Risk - UVa 567 Floyd
- UVA 567Risk【floyd】
- uva 567 risk floyd
- UVA - 567 Risk (floyd算法)
- UVa 567 Risk (Floyd+任意两点最短路)
- uva567 Risk(floyd)
- UVa567 Risk(floyd)
- uva Risk(Floyd求最短路)
- UVA 567 - Risk(最短路)
- uva 567 Risk(最短路Folyd)
- uva 567 risk
- UVA 567 - Risk
- JAVA反射机制
- android 指定组件的圆角图片处理
- AnySDK项目实战教程
- mysql日志详细解析
- 热咖啡报表 (品尝ABAP的味道)
- UVA - 567 Risk(Floyd)
- dp和px的关系
- MySQL的mysqldump工具的基本用法
- jquery-min.js /jquery-1.8.2.min.js引入后报错
- 面向对象的三大基石(封装,继承和复合,多态)
- Java 泛型
- Oracle内置SQL函数-分类整理大全
- 某产品短信验证码缺陷的查找及利用
- 开始 音/视频 研发之旅