40pts求调
查看原帖
40pts求调
790279
szk2022楼主2023/7/10 10:51
#include<bits/stdc++.h>
using namespace std;
int long long n,m,u,v,w,a[1001][1001],mp[1001][1001];
int main(){
	scanf("%lld%lld",&n,&m);
	for(int i=1;i<=m;i++){
		scanf("%lld%lld%lld",&u,&v,&w);
		a[u][v]=w;
		a[v][u]=w;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(i!=j and a[i][j]==0){
				a[i][j]=INT_MAX;
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			mp[i][j]=INT_MAX;
			for(int k=1;k<=n;k++){
				mp[i][j]=min(mp[i][j],a[i][k]+a[k][j]);
				mp[j][i]=mp[i][j];
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			printf("%lld ",mp[i][j]);
		}
		printf("\n");
	}
}

2023/7/10 10:51
加载中...