2 条题解

  • 0
    @ 2025-3-16 19:31:55

    重边狡猾狡猾滴

    #include<bits/stdc++.h>
    using namespace std;
    long long n, m, dis[105][105];
    
    int main(){
    	cin>>n>>m;
    	memset(dis, 0x3f3f3f3f, sizeof(dis));
    	for(int i=1;i<=n;i++){
    		dis[i][i]=0;
    	}
    	for(int i=1;i<=m;i++){
    		long long u, v, w;
    		cin>>u>>v>>w;
    		 dis[u][v] = dis[v][u] = min(dis[u][v], (long long)w);
    	}
    	for(int k=1;k<=n;k++){
    		for(int i=1;i<=n;i++){
    			for(int j=1;j<=n;j++){
    				if(dis[i][k] != 0x3f3f3f3f && dis[k][j] != 0x3f3f3f3f &&dis[i][k]+dis[k][j]<dis[i][j])dis[i][j]=dis[i][k]+dis[k][j];
    			}
    		}
    	}
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=n;j++){
    			cout<<dis[i][j]<<" ";
    		}
    		cout<<endl;
    	}
    } 
    
    

    信息

    ID
    4663
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    28
    已通过
    13
    上传者