반응형

 

 

<코드>

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;

#define INF 10000001

int dp[101][101];
int n, m, a, b, c;

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie();


	cin >> n >> m;

	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= n; j++)
			if (i != j) dp[i][j] = INF;

	for (int i = 0; i < m; i++)
	{
		cin >> a >> b >> c;
		dp[a][b] = min(dp[a][b], c);
	}

	for (int k = 1; k <= n; k++)
		for (int i = 1; i <= n; i++)
			for (int j = 1; j <= n; j++)
				dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j]);
			

					
			
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
			cout << (dp[i][j] != INF ? dp[i][j] : 0)  << " ";
		cout << '\n';
	}
}

 

풀이 방법

 

비용의 최대값은 9,900,000이며, 노선이 하나가 아닐 수 있다는 사실에 주의합시다.

 

www.acmicpc.net/problem/11404

 

11404번: 플로이드

첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가

www.acmicpc.net

 

반응형

+ Recent posts