MST
![[1647] 도시 분할 계획(C++)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxxPth%2FbtrSJT8yU6r%2FxjGffp9AZi7MYuy9rtsTX1%2Fimg.png)
[1647] 도시 분할 계획(C++)
문제 바로가기 동물원에서 막 탈출한 원숭이 한 마리가 세상구경을 하고 있다. 그러다가 평화로운 마을에 가게 되었는데, 그곳에서는 알 수 없는 일이 벌어지고 있었다. 마을은 N개의 집과 그 집들을 연결하는 M개의 길로 이루어져 있다. 길은 어느 방향으로든지 다닐 수 있는 편리한 길이다. 그리고 각 길마다 길을 유지하는데 드는 유지비가 있다. 마을의 이장은 마을을 두 개의 분리된 마을로 분할할 계획을 가지고 있다. 마을이 너무 커서 혼자서는 관리할 수 없기 때문이다. 마을을 분할할 때는 각 분리된 마을 안에 집들이 서로 연결되도록 분할해야 한다. 각 분리된 마을 안에 있는 임의의 두 집 사이에 경로가 항상 존재해야 한다는 뜻이다. 마을에는 집이 하나 이상 있어야 한다. 그렇게 마을의 이장은 계획을 세우다가 ..
![최소 신장 트리(Minimum Spanning Tree, MST)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP6821%2FbtrN3UZuylS%2FN7rmM8ZtaE4UGKCKUTn3OK%2Fimg.jpg)
최소 신장 트리(Minimum Spanning Tree, MST)
신장 트리(Spanning Tree) 신장 트리란, 사이클을 형성하지 않는 그래프를 말한다. 나는 부모님의 자식이 될 수 있지만 내 형제자매의 자식은 될 수 없는 것처럼, 사이클이 없다는 것은 부모-자식 관계만 형성된다는 것이고 따라서 신장 트리는 트리의 형태를 가지고 있다. // 신장 트리의 특징 1. 그래프의 모든 정점이 간선에 의해 하나로 연결됨 2. 그래프 내에서 사이클 형성 X (첫 번째 그래프도 오른쪽으로 90도 회전시키면 트리처럼 보임) 최소 신장 트리(Minimum Spanning Tree) 가중치가 있는 그래프에서도 신장 트리를 구성할 수 있는데, 신장 트리의 모든 간선의 가중치 합이 최소인 그래프를 최소 비용 신장 트리(Minimum Cost Spanning Tree) 또는 최소 신장 ..