만드는 중입니다

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

단색 트리

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

요약
루트가 있는 트리에서 검은 정점을 k개 칠할 때, 조상과 자손 관계인 검은 정점 쌍의 최솟값을 k=0부터 n까지 각각 구합니다.
난이도

어려움10점 중 8점

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

문제

단색 트리는 각 정점이 흰색 또는 검은색으로 칠해진 트리이다. 단색 트리의 점수는 다음 조건을 모두 만족하는 비순서 정점 쌍 (u,v)(u, v)의 개수이다.

  • 정점 uu와 vv가 모두 검은색이다.
  • uu가 vv의 조상이거나, vv가 uu의 조상이다.

루트가 11인 정점 nn개의 루트 달린 트리가 주어진다.

00부터 nn까지의 각 kk에 대해, 검은색 정점이 정확히 kk개, 흰색 정점이 n−kn-k개가 되도록 트리를 칠할 수 있다. 가능한 모든 칠하기 가운데 최소 점수를 ckc_k라고 한다. 모든 0≤k≤n0 \leq k \leq n에 대해 ckc_k를 구하라.

입력

첫 줄에 정점의 개수 nn이 주어진다 (1≤n≤2×1051 \leq n \leq 2 \times 10^5).

이어지는 n−1n-1개의 줄 중 ii번째 줄에는 정점 i+1i+1의 부모 pi+1p_{i+1}이 한 정수로 주어진다 (1≤pi+1≤n1 \leq p_{i+1} \leq n, pi+1≠i+1p_{i+1} \neq i+1).

출력

한 줄에 n+1n+1개의 정수를 출력한다. ii번째 정수는 ci−1c_{i-1}이다 (1≤i≤n+11 \leq i \leq n+1).

힌트

정점 xx가 정점 yy의 조상이다 (x≠y)(x \neq y)란, aia_i가 ai+1a_{i+1}의 부모인 정점 수열 {x=a1,a2,…ak=y}\{x=a_1, a_2, \ldots a_k=y\}가 존재한다는 뜻이다 (1≤i≤k−11 \leq i \leq k-1).

예제2

  1. 예제 1

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

    입력
    3
    3
    1
    
    예상 출력
    0 0 1 3