플로이드 와샬
#include <iostream>
#define INF 100000
#define NODE 1000
using namespace std;
int graph[NODE][NODE]{ 0 };
void Floyd_washall()
{
int n; cin >> n;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
cin >> graph[i][j];
}
for (int k = 0; k < n; k++) // 거쳐가는 노드
{
for (int i = 0; i < n; i++) // 출발지 노드
{
for (int j = 0; j < n; j++) // 도착지 노드
{
if (graph[i][k] &&
graph[k][j])
graph[i][j]= 1;
}
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
cout << graph[i][j] << " ";
cout << '\n';
}
}
int main(void)
{
Floyd_washall();
return 0;
}
'코딩테스트 > 백준' 카테고리의 다른 글
[실1] 2583 - 영역 구하기 bfs (0) | 2022.07.01 |
---|---|
[실1] 14888 - 연산자 끼워넣기 (0) | 2022.06.25 |
[실1] 11286 - 절대값 힙 (0) | 2022.06.21 |
[실1] 1991 - 트리 순회 (0) | 2022.06.20 |
[실1] 2667 - 단지 번호 붙이기 (0) | 2022.06.19 |