救救我
查看原帖
救救我
563663
xu222ux楼主2024/3/2 10:00
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m;
int f[102][102];
signed main(){
	cin>>n>>m;
 	for(int i=1;i<=n;i++)
 		for(int j=1;j<=n;j++)
 			f[i][j]=-1;
 	for(int i=1;i<=m;i++){ 
 		int x,y,z;cin>>x>>y>>z;
 		f[x][y]=z;
		f[y][x]=z; 
	}
    for(int i=1;i<=n;i++)f[i][i]=0;
 	for(int k=1;k<=n;k++){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
 				if(f[i][k]!=-1&&(f[i][j]==-1||f[i][j]>f[k][j]+f[i][k])&&f[k][j]!=-1)
 					f[i][j]=f[k][j]+f[i][k];
			}
		}
	}
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++)
			cout<<f[i][j]<<' ';
        cout<<endl;
    }
	return 0;
}

洛谷AC,但是。

5 12
1 2 967
2 3 900
3 4 771
4 5 196
2 4 788
3 1 637
1 4 883
2 4 82
5 2 647
1 4 198
2 4 181
5 2 665
0 280 637 198 394 
280 0 853 82 278 
637 853 0 771 967 
198 82 771 0 196 
394 278 967 196 0 

这组过不了,在线等,玄关

2024/3/2 10:00
加载中...