0
点赞
收藏
分享

微信扫一扫

【最短路径问题笔记】Floyd算法求多源最短路径问题

独兜曲 2022-02-10 阅读 72
算法图论

 

代码:

使用邻接矩阵建图

使用邻接矩阵存放最短距离 

#include<iostream>
#include<cstring>
using namespace std;
const int N=101;
int g[N][N];
int n,m;
void input(){
	memset(g,0x3f,sizeof(g));
	for(int i=1;i<=N;i++){
		g[i][i]=0;
	} 
   	cin>>n>>m;
   	int a,b,c;
   	for(int i=1;i<=m;i++){
   	    cin>>a>>b>>c;
   	    g[a][b]=g[b][a]=c;	
	}
}
void floyd()
{
	for(int k=1;k<=n;k++){
		for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			   g[i][j]=min(g[i][j],g[i][k]+g[k][j]);	
			}
		}
	}
}
void output()
{
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cout<<g[i][j]<<" ";
		}
		cout<<endl;
	}
}
int main()
{

	input();
	floyd();
	output();
}

 

举报

相关推荐

0 条评论