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

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

정기 모임 3

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

요약
거리 X가 1부터 N까지일 때, 트리에서 임의의 두 정점 사이 거리가 정확히 X가 되도록 고를 수 있는 정점의 최대 개수를 각각 구한다.
난이도

어려움10점 중 9점

유형
트리, 그리디, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

정점이 NN개인 트리가 주어진다. 각 정점에는 11번부터 NN번까지 차례대로 번호가 붙어 있다. ii번째 간선은 AiA_i번 정점과 BiB_i번 정점을 연결한다.

트리에서 두 정점 사이의 거리는 두 정점을 잇는 유일한 단순 경로에 포함되는 간선의 수로 정의한다.

사람들이 트리 위에서 모임을 열려고 한다. 트리 위에서도 바이러스는 퍼지므로 사람들은 정부의 방역 지침을 지키며 모임을 진행한다. 한 정점에 한 사람씩 참석해 거리두기를 유지하며 모인다.

정부가 XX단계 방역 지침을 시행하면 트리 위의 임의의 두 사람 사이의 거리는 XX 이상이어야 한다. 그런데 사람들은 너무 멀리 떨어져서 모임을 하고 싶지 않으므로 거리가 XX를 초과하지도 않게 모인다. 따라서 트리에 있는 임의의 두 사람 사이의 거리가 정확히 XX가 되도록 모인다.

사람들은 모임을 최대한 크게 열고 싶어 하므로, 위 거리 조건을 지키며 트리에 수용할 수 있는 사람 수의 최댓값을 구하려고 한다. 코로나 상황은 수시로 변하고 무슨 일이 일어날지 예측할 수 없으므로 사람들은 여러 XX의 가능성을 고려한다. X=1,⋯ ,NX = 1, \cdots, N인 모든 경우에 대해 모일 수 있는 최대 인원을 구해 보자.

입력

첫 줄에 NN이 주어진다. (1≤N≤200,000)(1 \le N \le 200,000) 이후 N−1N-1줄에 걸쳐 ii번째 줄에 트리의 ii번째 간선을 나타내는 Ai,BiA_i, B_i가 공백을 사이에 두고 주어진다. (1≤Ai,Bi≤N)(1 \le A_i, B_i \le N)

출력

NN줄에 걸쳐 ii번째 줄에는 방역 지침이 ii단계일 때 모일 수 있는 최대 인원을 출력하라.

예제1

  1. 예제 1

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