정 이진 트리 만들기
시간 제한5초메모리 제한512 MB
최대 15개 정점으로 이루어진 트리에서 정점을 최소로 삭제해 남은 정점이 완전 이진 트리를 이루게 합니다.
문제
트리는 사이클이 없는 연결 그래프이다.
루트 있는 트리는 정점 하나를 루트로 정한 트리이다. 루트 있는 트리에서 와 가 간선으로 이어져 있고 루트에서 까지의 최단 경로가 루트에서 까지의 최단 경로보다 짧으면, 를 의 자식이라고 한다.
정 이진 트리는 모든 노드의 자식 수가 정확히 개이거나 개인 루트 있는 트리이다.
노드가 개인 트리 가 주어진다. 노드에는 번부터 번까지 번호가 붙어 있다. 노드를 몇 개 지울 수 있고, 노드를 지우면 그 노드에 붙은 간선도 함께 지워진다. 남은 노드 중에서 루트를 하나 고르면 정 이진 트리가 되도록, 지우는 노드 수를 최소로 하라.
입력
첫 줄에 테스트 케이스 수 가 주어진다. 이어서 테스트 케이스가 개 주어진다. 각 테스트 케이스의 첫 줄에는 트리의 노드 수 이 주어진다. 다음 개 줄에는 공백으로 구분된 두 정수 와 가 주어지며, 에 와 를 잇는 무방향 간선이 있다는 뜻이다.
제한
- 각 테스트 케이스의 간선은 항상 연결된 트리를 이룬다.
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. 는 부터 시작하는 테스트 케이스 번호이고, 는 를 정 이진 트리로 만들기 위해 지워야 하는 노드 수의 최솟값이다.
힌트
예제의 첫 번째 테스트 케이스에서 는 번 노드를 루트로 보면 이미 정 이진 트리이므로 아무것도 지우지 않아도 된다.
두 번째 테스트 케이스에서는 번과 번 노드를 지우면 번 노드가 루트인 정 이진 트리가 된다.
세 번째 테스트 케이스에서는 번 노드를 지우면 번 노드가 루트인 정 이진 트리가 된다. 번 노드를 지우고 번 노드를 루트로 삼아도 된다.