您的位置:首页 > 其它

hiho第二十四周

2016-07-03 23:34 148 查看
最短路之Floyd算法
代码如下:

#include <bits/stdc++.h>
#define maxn 105
using namespace std;
int w[maxn][maxn];
int main()
{
int n, m, a, b, c;

memset( w, 0x3f, sizeof( w));
scanf( "%d%d", &n, &m);
for ( int i = 1; i <= n; i++)
w[i][i] = 0;
while ( m--){
scanf( "%d%d%d", &a, &b, &c);
w[a][b] = w[b][a] = min( w[a][b], c);
}
for ( int i = 1; i <= n; i++){
for ( int j = 1; j <= n; j++){
for ( int k = 1; k <= n; k++)
w[j][k] = min( w[j][k], w[j][i] + w[i][k]);
}
}
for ( int i = 1; i <= n; i++){
for ( int j = 1; j < n; j++){
printf( "%d ", w[i][j]);
}
printf( "%d\n", w[i]
);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: