Floyd
来源:互联网 发布:阿富汗 帝国坟场 知乎 编辑:程序博客网 时间:2024/06/08 02:43
#include <stdio.h>#include <string.h>#define maxn 100#define INF -1int map[maxn][maxn];int n, m, path[maxn][maxn];void Floyd(int n){int i, j, k;for(k = 0; k < n; ++k)for(i = 0; i < n; ++i)for(j = 0; j < n; ++j)if(map[i][k] != INF && map[k][j] != INF && (map[i][k] + map[k][j] < map[i][j] || map[i][j] == INF)){map[i][j] = map[i][k] + map[k][j];path[i][j] = k;}}void getPath(int v, int u){int k = path[v][u];if(k == INF){printf("%d===>", v);return;}getPath(v, k);getPath(k, u);}int main(){freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);scanf("%d%d", &n, &m);memset(map, INF, sizeof(map));memset(path, INF, sizeof(path));int i, j, a, b, c;for(i = 0; i < n; ++i) map[i][i] = 0;for(i = 0; i < m; ++i){scanf("%d%d%d", &a, &b, &c);map[a][b] = c;}Floyd(n);for(i = 0; i < n; ++i)for(j = 0; j < n; ++j)if(map[i][j] != INF){printf("%d->%d:%d\n the path is:", i, j, map[i][j]);getPath(i, j);printf("%d\n", j);}return 0;}
0 0
- floyd
- Floyd
- Floyd
- floyd
- floyd
- floyd
- Floyd
- FLOYD
- Floyd
- Floyd
- Floyd算法
- Floyd-Warshall
- Floyd算法
- Floyd algorithm
- Floyd算法
- Floyd算法
- Floyd算法
- Floyd算法
- URAL 1804 The Machinegunners in a Playoff (比较绕的分类)
- 查看LINUX进程内存情况的命令
- const常量
- ORACLE中decode函数的用法
- 相遇是缘
- Floyd
- 4、确定对象在使用前已被初始化
- 如何通过函数调用得到n个要改变的值(摘抄自谭浩强C语言)
- 求哈夫曼树的带权路径长
- Spring事务管理的两种模式
- scrapy爬取深度设置
- ORACLE常见数据类型详解
- 月挂西窗顿觉孤瘦梦入红楼倍感烟
- 相遇是缘