만드는 중입니다

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

조심해서 세기

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

요약
리프에 0부터 n까지의 정수를 적는 방법 중 루트에 최종으로 k가 써지는 경우의 수를 k마다 998244353으로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

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

문제

루트가 정점 11인 근이 있는 트리가 정점 nn개로 주어진다. 정점이 루트가 아니고 차수가 정확히 11이면 그 정점을 리프라고 한다.

그림은 샘플 테스트에 해당하며, 리프는 빨간색으로 표시되어 있다.

mex⁡(S)\operatorname{mex}(S)는 SS에 없는 가장 작은 음이 아닌 정수이다. 예를 들어 mex⁡{0,1,3,4}=2\operatorname{mex}\{0, 1, 3, 4\} = 2, mex⁡{2,3}=0\operatorname{mex}\{2, 3\} = 0, mex⁡∅=0\operatorname{mex}\varnothing = 0이다.

트리의 리프 개수를 mm이라 하자. 다음 과정을 수행한다.

  1. 모든 리프 정점 uu에 {0,1,2,…,n}\{0, 1, 2, \ldots, n\}에 속한 정수를 아무거나 하나 적는다.
  2. 리프가 아닌 모든 정점 uu에는 uu의 자식들에 적힌 정수들의 mex⁡\operatorname{mex}를 적는다.

예를 들어 그림의 첫 번째 트리에서 정점 4에 00을, 정점 5에 33을 적으면, 정점 2에는 mex⁡{0}=1\operatorname{mex}\{0\} = 1, 정점 3에는 mex⁡{3}=0\operatorname{mex}\{3\} = 0, 정점 1에는 mex⁡{1,0}=2\operatorname{mex}\{1, 0\} = 2가 적힌다.

트리를 채우는 방법은 모두 (n+1)m(n+1)^m가지이다. 모든 k∈{0,1,2,…,n}k \in \{0, 1, 2, \ldots, n\}에 대해, 정점 1에 적힌 수가 정확히 kk가 되도록 채우는 방법의 수를 구한다. 값이 매우 클 수 있으므로 998 244 353998\,244\,353으로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

    입력
    5
    1 2
    1 3
    2 4
    2 5
    
    예상 출력
    55
    127
    34
    0
    0
    0
    
  2. 예제 2

    입력
    8
    1 2
    1 3
    1 4
    1 5
    1 6
    6 7
    6 8
    
    예상 출력
    69632
    265534
    133905
    47790
    12636
    1944
    0
    0
    0
    
  3. 예제 3

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