만드는 중입니다

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

Fulkerson

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

요약
노드가 N개인 트리가 주어질 때, K개의 노드를 골라 모든 노드에서 가장 가까운 선택 노드까지 거리의 최댓값을 최소로 하는 값을 각 K에 대해 구합니다.
난이도

어려움10점 중 9점

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

문제

레스터와 델버트는 철도망에서 최소 개수의 철로를 폭파해 네트워크를 끊는 방법을 이미 알고 있다. 그 문제가 꽤 쉬웠기 때문에 연방 은행을 터는 방법이라는 다음 흥미로운 문제로 넘어갔다. 이제 그들은 탈출 계획을 세우는 데 당신의 도움이 필요하다.

은행은 NN개의 교차로와 이들을 잇는 N−1N - 1개의 양방향 도로가 있는 도시에 있다. 모든 도로의 길이는 같다. 도로망을 이용하면 어떤 교차로에서든 다른 모든 교차로로 갈 수 있다.

안전한 탈출을 위해 레스터와 델버트는 KK개의 경계 그룹을 고용해 서로 다른 교차로에 배치하고, 경찰의 움직임에 대한 정보를 수집할 계획이다. 배치가 정해지면 각 교차로마다 어떤 경계 그룹이든 도달하는 데 필요한 최소 도로 수를 구한다. 모든 교차로에 대해 이 값의 최댓값을 그 배치의 위협 수준이라고 한다.

레스터는 경계 그룹을 하나만 고용하고 싶어 하고, 델버트는 NN개를 쓰고 싶어 한다. 결과는 대개 그 사이 어딘가에 놓일 것이므로, 가능한 KK의 값마다 달성할 수 있는 위협 수준의 최솟값을 구하라.

입력

입력의 첫 줄에는 도시의 교차로 수 NN이 주어진다 (1≤N≤150 0001 \leq N \leq 150\,000). 다음 N−1N-1개의 줄에는 도로에 대한 정보가 주어진다. 각 줄에는 두 정수 uu와 vv가 주어지며, 이는 두 교차로 사이에 도로가 있다는 뜻이다 (1≤u,v≤N1 \le u, v \le N, u≠vu \neq v). 어떤 교차로에서든 도로망을 통해 다른 모든 교차로에 도달할 수 있음이 보장된다.

출력

출력은 NN개의 정수로 이루어진다. ii번째 정수는 정확히 ii개의 경계 그룹을 사용해 달성할 수 있는 위협 수준의 최솟값과 같아야 한다.

힌트

경계 그룹 수최적 배치 중 하나최적 거리
173
27, 92
31, 5, 62
41, 5, 7, 91
51, 5, 7, 9, 101
61, 5, 7, 8, 9, 101
71, 5, 6, 7, 8, 9, 101
81, 4, 5, 6, 7, 8, 9, 101
91, 3, 4, 5, 6, 7, 8, 9, 101
101, 2, 3, 4, 5, 6, 7, 8, 9, 100

예제1

  1. 예제 1

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