#7,8,9,10,11
查看原帖
#7,8,9,10,11
1050386
lyjeve楼主2024/12/31 21:59
#include <bits/stdc++.h>
using namespace std;
#define X 100
int const inf=0x3f;
int n;//点数
int m;//边数
int u,v,w;//一条边的首,尾,权值
int zdl[X][X];
void floyd()
{
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			for(int k=1;k<=n;k++)
				zdl[j][i]=zdl[i][j]=min(zdl[i][j],zdl[i][k]+zdl[k][j]);
}
int main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		zdl[i][i]=0;
		for(int j=1;j<=n;j++)
		{
			if(j==i)continue;
			zdl[i][j]=inf;
		}
	}
	while(m--)cin>>u>>v>>w,zdl[u][v]=zdl[v][u]=min(zdl[v][u],w);
	floyd();
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
		    cout<<zdl[i][j]<<' ';
		}
		cout<<'\n';
	}
	return 0;
}

需求助

2024/12/31 21:59
加载中...