최고의 크리스마스트리
시간 제한2초메모리 제한1024 MB
각 질의의 r을 루트로 했을 때, 자식 정점의 장식이 부모 정점의 장식보다 아름다운 배치의 수를 998244353으로 나눈 나머지로 구합니다.
문제
현아는 크리스마스트리를 준비하고 있다. 현아는 자신이 준비한 트리가 세상에서 가장 예뻤으면 좋겠다.
현아가 가진 트리 는 개의 정점과 개의 간선으로 이루어져 있고, 루트 을 가진다. 현아는 정점마다 달 장식을 하나씩, 총 개 갖고 있다. 모든 장식은 예쁨의 값이 서로 다르며, 첫 번째로 예쁜 장식부터 번째로 예쁜 장식까지 있다. 두 장식의 예쁨 값이 같은 경우는 없다.
각 정점에 달린 장식이 다음 조건을 만족하면 는 예쁘다고 한다.
- 을 루트로 했을 때 만들어지는 모든 부모-자식 쌍에서, 자식 정점의 장식이 부모 정점의 장식보다 예쁨 값이 크다.
여기서 두 정점 , 에 대해 가 의 부모라는 것은 두 정점이 인접해 있고, 에서 까지의 거리가 에서 까지의 거리보다 작다는 뜻이다. 두 정점 , 사이의 거리는 에서 까지 이동할 때 거치는 간선 수의 최솟값이다.
가 예쁘도록 각 정점에 장식을 다는 경우의 수를 으로 나눈 나머지를 구하라. 은 소수이다. 장식이 달리지 않은 정점이 있으면 안 된다. 한 번만 구하면 재미없으니, 트리의 루트를 바꿔 가며 번 구하라.
입력
첫 번째 줄에 트리 정점의 수 이 주어진다.
그다음 개의 줄에 걸쳐 정수 , 가 공백으로 구분되어 주어진다. 이는 두 정점 와 를 잇는 간선이 존재한다는 뜻이다.
그다음 줄에 쿼리의 수 가 주어진다.
그다음 개의 줄에 정수 이 한 줄에 하나씩 주어진다. 이는 트리의 루트가 일 때 답을 요청하는 쿼리이다.
출력
각 쿼리마다 답을 출력한다. 답과 답 사이에는 개행 문자 하나를 넣는다.
제한
- ,
- 주어지는 그래프는 반드시 트리이다.