만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

잎 줄이기

시간 제한8초메모리 제한1024 MB

요약
뿌리가 있는 트리에서 자손을 모두 포함하는 노드 k개를 골라 팔고, 남는 고객 노드(리프)의 수를 최소화합니다.
난이도

보통10점 중 6점

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

문제

베네룩스 고급 전화 회사(BAPC)는 베네룩스 지역에서 가장 큰 전화망을 보유하고 있다. 안타깝게도 네트워크가 너무 커져서 제대로 관리하기 어렵다. 그래서 BAPC는 네트워크 일부를 매각하기로 했다.

네트워크는 서로 연결된 전송 노드로 구성된다. 노드 하나는 중앙 교환기로 지정된다. 나머지 모든 노드는 상위 전송 노드가 정확히 하나씩 있다. 어느 노드에서든 상위 연결을 따라 올라가면 결국 중앙 교환기에 도달한다. 하위 노드가 없는 노드를 잎 노드, 즉 고객 전송 노드라고 한다.

매각할 때는 무결성을 유지해야 한다. BAPC가 노드 XX를 매각하면, XX의 하위에 있는 모든 노드도 함께 매각해야 한다.

BAPC는 정확히 kk개의 전송 노드를 매각한다. 이 kk개를 고르는 방법은 여러 가지가 있다. BAPC는 관리를 최대한 편하게 하고 싶어 하므로, 무결성을 지키면서 매각 후 네트워크에 남는 고객 전송 노드의 수를 최소로 만들려고 한다.

예를 들어 그림 L.1에 나온 두 번째 입력 사례를 보자. 빨간 줄무늬 노드 세 개가 매각되고, 굵은 초록색 노드 두 개가 남은 고객 노드이다.

그림 L.1: 두 번째 입력 사례의 시각화.

입력

입력은 다음과 같이 주어진다.

  • 첫 줄에 두 정수 nn과 kk가 주어진다(0≤k<n≤1060\leq k < n\leq 10^6). nn은 전송 노드의 수이고, kk는 매각할 노드의 수이다.
  • 이어서 n−1n-1개의 줄이 주어진다. ii번째 줄에는 정수 pip_i(0≤pi<i0 \leq p_i < i) 하나가 주어지며, 이는 전송 노드 ii(1≤i<n1 \leq i < n)가 노드 pip_i로 나가는 연결을 가진다는 뜻이다.

전송 노드에는 00부터 n−1n-1까지 번호가 붙는다. 노드 00은 항상 중앙 교환기이다.

출력

kk개의 전송 노드를 매각한 뒤 남는 고객 전송 노드의 최소 개수를 출력한다. 중앙 교환기만 남으면 그것도 고객 노드로 센다.

예제2

  1. 예제 1

    입력
    5 2
    0
    0
    1
    1
    
    예상 출력
    1
    
  2. 예제 2

    입력
    9 3
    0
    0
    1
    1
    1
    4
    5
    6
    
    예상 출력
    2