[백준] 1647번 도시 분할 계획 c++


[백준] 1647번 도시 분할 계획 c++

최소 스패닝 트리 복습과 class 5 취득을 위해서 푼 문제 우연히 아이디어를 얻게 돼서 풀었다. 일단 마을을 두 부분으로 나눠야되고 그 마을을 이루는 길의 합도 최솟값을 가져야한다. 그래서 먼저 마을 전체에 대해서 최소 스패닝 트리를 그려보았다. 이 상태로 두 부분으로 나누면 원래 전체가 최소 이기에 나눠진 두 개도 최소라고 생각했다. 그럼 마을을 나누기 위해서 길 하나를 없애야 되는데 두 마을이 최솟값을 가지기 위해서는 가장 큰 값을 가지는 길을 없애주면된다. 최소 스패닝 트리를 만들고 길 한 개만 없애주면 딱 두 부분으로 나눠지기에 가장 큰 값을 없애주면 된다. 그래서 간선의 개수가 N - 1개가 되었을 때 가장 마지막에..........

[백준] 1647번 도시 분할 계획 c++에 대한 요약내용입니다.

자세한 내용은 아래에 원문링크를 확인해주시기 바랍니다.



원문링크 : [백준] 1647번 도시 분할 계획 c++