소 전화망

시간 제한1초메모리 제한128 MB

요약
나무의 잎마다 소가 있고 각 정점은 최대 K개의 대화를, 각 간선은 한 번에 하나의 대화만 감당할 수 있을 때 동시에 성립하는 잎 간 대화 쌍의 최댓값을 구한다.
난이도

어려움10점 중 8점

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

문제

소들이 전화망을 구축했다. 이 문제에서 전화망은 정점이 NN개(1≤N≤100,0001 \le N \le 100{,}000)인 무방향 트리로 볼 수 있으며, 정점에는 11번부터 NN번까지 번호가 매겨져 있다. 각 정점은 전화 교환기이고, 각 간선은 두 교환기를 잇는 전화선이다. ii번 간선은 두 정수 AiA_i와 BiB_i로 주어지며, 이 간선이 잇는 두 정점을 뜻한다(1≤Ai≤N1 \le A_i \le N, 1≤Bi≤N1 \le B_i \le N, Ai≠BiA_i \ne B_i).

어떤 교환기에는 전화선이 단 하나만 연결되어 있다. 이러한 정점은 트리의 잎(leaf)이며, 각 잎은 소가 있는 목초지에 놓인 전화 부스다.

두 소가 통화하려면, 두 소가 있는 두 정점 사이의 유일한 최단 경로를 따라 통화가 전달된다. 하나의 교환기는 동시에 최대 KK개(1≤K≤101 \le K \le 10)의 통화만 처리할 수 있고, 하나의 전화선에는 같은 시각에 최대 한 개의 통화만 지나갈 수 있다.

트리의 모든 잎에 소가 한 마리씩 있을 때, 동시에 통화할 수 있는 소 쌍의 최대 개수는 얼마인가? 물론 각 소는 최대 한 번의 통화에만 참여할 수 있다.

K=1K = 1인 다음 66개 정점 전화망을 생각해 보자.

       1   5          C1   C5
       |   |          ||   ||
       2---4   -->    |2---4|
       |   |          ||   ||
       3   6          C3   C6

정점 1,3,5,61, 3, 5, 6에 각각 소가 있다. 소 11이 소 33과 통화하고 소 55가 소 66과 통화하면 어떤 교환기도 처리 한도를 넘지 않으므로, 이 예시의 답은 22이다(동시에 통화하는 소 쌍이 두 쌍).

입력

  • 첫째 줄: 공백으로 구분된 두 정수 NN과 KK가 주어진다.
  • 둘째 줄부터 NN번째 줄까지: i+1i+1번째 줄에 ii번 간선의 두 정점 AiA_i와 BiB_i가 공백으로 구분되어 주어진다.

출력

  • 첫째 줄: 동시에 통화할 수 있는 소 쌍의 최대 개수를 출력한다.

예제5

  1. 예제 1

    입력
    6 1
    1 2
    2 3
    2 4
    4 5
    4 6
    
    예상 출력
    2
    
  2. 예제 2

    입력
    2 1
    1 2
    
    예상 출력
    1
    
  3. 예제 3

    입력
    5 2
    1 2
    1 3
    1 4
    1 5
    
    예상 출력
    2
    
  4. 예제 4

    입력
    5 1
    1 2
    1 3
    1 4
    1 5
    
    예상 출력
    1
    
  5. 예제 5

    입력
    8 2
    1 2
    1 3
    1 4
    1 5
    2 6
    2 7
    2 8
    
    예상 출력
    3