연결된 다중 그래프가 주어질 때, 원래 차수와 다른 차수를 가진 정점 수가 최소가 되는 신장 트리를 정해진 구성 절차에 따라 출력한다.
어려움8그래프그리디트리정렬아직 제출이 없습니다시간 제한2초메모리 제한1024 MB대역폭에 제한이 없는 새로운 무선 통신 방식이 시험을 통과했다. 늘어나는 트래픽을 감당하지 못하는 기존 광케이블 망을 이 방식으로 교체할 수 있다. 새 망의 배치는 당신이 정한다.
기존 망은 메시지를 중계하는 노드와, 서로 다른 두 노드를 잇는 광케이블 회선으로 이루어진다. 어느 두 노드 사이에도 광케이블을 따라가는 경로가 적어도 하나 있고, 대역폭 때문에 두 노드를 회선 여러 개가 잇기도 한다.
새 망에는 광케이블이 없다. 대신 두 노드를 잇는 무선 회선을 쓴다. 대역폭에는 제한이 없지만 무선 회선은 비싸다. 그래서 망 전체를 연결한 상태로 두면서 회선 수를 최소로 한다. 즉 어느 두 노드 사이에도 무선 회선을 따라가는 경로가 정확히 하나 있어야 한다. 한편 각 노드는 연결 개수를 미리 정해 두고 만들었다. 지금 연결된 회선 수와 다른 수의 회선에 연결되는 노드는 재구성해야 하고, 여기에 비용이 든다.
어느 두 노드 사이에도 경로가 정확히 하나씩 있으면서 회선 수가 기존 망과 달라지는 노드 수가 최소가 되도록 새 망을 설계하라.
첫째 줄에 노드 수 n과 기존 망의 광케이블 회선 수 m이 주어진다 (2≤n≤104, 1≤m≤105). 노드 번호는 0부터 n−1까지다.
다음 m개 줄에는 서로 다른 두 정수 ai와 bi가 주어진다. i번째 광케이블 회선이 노드 ai와 노드 bi를 잇는다는 뜻이다. 어느 두 노드 사이에도 광케이블 회선으로 이어지는 경로가 적어도 하나 있다. 두 노드를 광케이블 회선 여러 개가 이을 수도 있다.
첫째 줄에 회선 수를 바꿔야 하는 노드의 최소 개수를 출력한다.
둘째 줄에는 노드 수와 무선 회선 수를 출력한다. 노드 수는 입력과 같다. 이어지는 각 줄에는 무선 회선 하나를 두 노드 번호로 출력하되 작은 번호를 앞에 쓴다. 회선은 앞 번호 오름차순으로, 앞 번호가 같으면 뒤 번호 오름차순으로 정렬한다.
최소를 달성하는 배치가 여럿이므로 다음 절차가 만드는 배치를 출력한다. dv를 기존 망에서 노드 v에 연결된 광케이블 회선 수라고 하자. 같은 두 노드를 잇는 회선이 여럿이면 각각 따로 센다.
3단계는 항상 모든 uj를 붙이고, 무선 회선 수는 항상 n−1이다.