아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

원숭이

시간 제한4초메모리 제한512 MB

요약
트리에서 K개의 정점에 원숭이를 배치하고 간선을 지워 모든 원숭이가 다른 원숭이에게 갈 수 있게 할 때, 남는 간선 수의 최솟값을 구한다.
난이도

어려움10점 중 8점

유형
트리, 동적 계획법, 그리디, DFS
정답자
아직 제출이 없습니다

문제

정점 NN개로 이루어진 트리가 주어진다. 트리에는 원숭이 KK마리가 있다. 원숭이들은 각자 서로 다른 정점 하나씩을 차지하려고 한다. 그다음, 남은 간선만으로도 각 원숭이가 다른 원숭이 한 마리 이상에게 이동할 수 있도록 트리의 간선 일부를 제거하려고 한다.

남길 수 있는 간선 개수의 최솟값을 구하여라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. (1≤T≤1001 \le T \le 100)

각 테스트 케이스의 첫째 줄에는 두 정수 NN과 KK가 주어진다. (2≤K≤N≤1052 \le K \le N \le 10^5) 다음 줄에는 N−1N - 1개의 정수 a1,a2,…,aN−1a_1, a_2, \ldots, a_{N - 1}이 공백으로 구분되어 주어진다. (1≤ai≤i1 \le a_i \le i) 이는 각 ii에 대해 정점 aia_i와 정점 i+1i + 1을 잇는 간선이 있음을 뜻한다.

출력

각 테스트 케이스마다 남길 수 있는 간선 개수의 최솟값을 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    2
    4 4
    1 2 3
    4 3
    1 1 1
    
    예상 출력
    2
    2