만드는 중입니다

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

게임

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

요약
트리의 각 정점에 0부터 m까지의 라벨을 붙이는 방법 중, 모든 단계에서 색칠되지 않은 정점들이 연결된 상태를 유지하는 경우의 수를 질의마다 구합니다.
난이도

어려움10점 중 9점

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

문제

정점이 nn개인 트리가 주어진다. 할 일이 없다고 느껴져서, 이 트리 위에서 게임을 하려고 한다.

게임을 시작하기 전에 각 정점 uu에 라벨 ℓu∈{0,1,2,…,m−1,m}\ell_u \in \{0, 1, 2, \ldots, m-1, m\}을 하나씩 붙여야 한다.

게임은 0부터 mm까지 번호가 붙은 m+1m+1개의 단계로 이루어진다. ii번째 단계에서는 ℓu≤i\ell_u \le i인 모든 정점 uu가 검은색으로 칠해진다. 이 시점에 칠해지지 않은 임의의 두 정점 xx, yy에 대해, 칠해진 정점을 지나지 않고 xx에서 yy로 가는 경로가 항상 존재하면 게임은 계속된다. 그렇지 않으면 즉시 패배하고 게임이 끝난다. 모든 단계가 끝난 뒤에도 게임이 계속되면 이긴다.

이길 수 있는지는 처음에 라벨을 어떻게 붙이는지에만 달려 있다는 것을 알게 되었다. 앞으로 qq일 동안 라벨을 다시 붙이고 게임을 진행하려고 한다. ii일에는 먼저 정점 aia_i에 라벨 bib_i를 준다. 그다음 나머지 정점에 라벨을 붙이는 방법 중 이길 수 있는 경우의 수를 구한다. 답은 998244353998244353으로 나눈 나머지로 출력한다.

입력

첫 줄에 세 정수 nn, mm, qq가 주어진다 (1≤n,q≤1051 \le n, q \le 10^5, 1≤m≤301 \le m \le 30).

이어지는 n−1n-1개의 줄에는 정점 xx와 yy 사이에 간선이 있음을 나타내는 두 정수 xx, yy가 주어진다 (1≤x,y≤n1 \le x, y \le n, x≠yx \ne y). 주어지는 그래프는 트리이다.

이어지는 qq개의 줄에는 질의를 나타내는 두 정수 aia_i, bib_i가 주어진다 (1≤ai≤n1 \le a_i \le n, 0≤bi≤m0 \le b_i \le m).

출력

각 질의마다 답을 998244353998244353으로 나눈 나머지를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    3 2 5
    1 2
    3 2
    3 1
    1 0
    2 0
    2 1
    2 2
    
    예상 출력
    7
    9
    5
    8
    9
    
  2. 예제 2

    입력
    6 6 6
    6 1
    1 3
    2 6
    4 2
    5 2
    2 1
    3 2
    5 3
    5 6
    5 3
    1 1
    
    예상 출력
    896
    2820
    2433
    1218
    2433
    2272