0
点赞
收藏
分享

微信扫一扫

弗洛伊德算法(Floyd算法)


#include <iostream>
using namespace std;

const int INF=99999;

int main()
{
int i,j,n,m,k,a,b,c;
int dist[105][105];
cin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j) dist[i][j]=0;
else dist[i][j]=INF;

for(i=1;i<=m;i++)
{
cin>>a>>b>>c;
dist[a][b]=c;
dist[b][a]=c;
}


for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(dist[i][k]+dist[k][j]<dist[i][j])
dist[i][j]=dist[i][k]+dist[k][j];

for (i=1;i<=n;i++){
for(j=1;j<=n;j++){
cout<<dist[i][j]<<"\t";
}
cout<<endl;
}

return 0;
}


举报

相关推荐

0 条评论