烫死了 重做一遍90pts 求条
查看原帖
烫死了 重做一遍90pts 求条
1034295
QuaternaryTree楼主2025/7/27 20:22
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
#include <climits>
#include <queue>
#include <map>

//using namespace std;

using ll = long long;

using ull = unsigned long long;

int T;

namespace Graph{
	
	int n , m;
	
	const int MAXN = 110;
	
	const int MAXM = 5000; 
	
	const int INF = 1e9 + 10;
	
	ll dis[MAXM][MAXM];
	
	void init(){
		
		for(int i = 1;i <= n;i++)
			for(int j = 1;j <= m;j++){
				
				if(i == j) dis[i][j] = 0;
				
				else dis[i][j] = INF;
			
			}
		
	}
	
	void read_and_min(){
		
		for(int i = 1 , u , v , w;i <= m;i++){
			
			std :: cin >> u >> v >> w;
			
			dis[u][v] = std :: min(dis[u][v] , (ll)w);
			
			dis[v][u] = std :: min(dis[v][u] , (ll)w);
			
		}
		
	}
	
	void awa(){
		
		for(int k = 1;k <= n;k++)
			for(int i = 1;i <= n;i++)
				for(int j = 1;j <= n;j++)
					if(dis[i][j] > dis[i][k] + dis[k][j])
						dis[i][j] = dis[i][k] + dis[k][j];
		
	}
	
	void readout(){
		
		for(int i = 1;i <= n;i++){
			
			for(int j = 1;j <= n;j++)
				std :: cout << dis[i][j] << ' ';
			
			std :: cout << '\n';
			
		}
		
	}
	
}

using namespace Graph;

void solve(){
	
	std :: cin >> n >> m;
	
	init();
	
	read_and_min();
	
	awa();
	
	readout();
	
}

signed main(){
	
	std :: ios::sync_with_stdio(false);
	
	std :: cin.tie(0);
	
	std :: cout.tie(0);
	
	T = 1;
	
	while(T--)
		solve();
	
	return (0 - 0);
}
2025/7/27 20:22
加载中...