Codeforces Round 854 by cybercats (Div. 1 + Div. 2)
H
Tree Cutting
Codeforces
3200
原题
← G→
翻译中…

You are given a tree with $n$ vertices.

翻译中…

A hero $k$ times do the following operation:

翻译中…
  • Choose some edge.
  • Remove it.
  • Take one of the two remaining parts and delete it.
  • Write the number of vertices in the remaining part.
翻译中…

You are given an initial tree and the a sequence of written numbers. Find the number of ways to make operations such that the written numbers are equal to the given numbers. Due to the answer can be big, find it by modulo $998\,244\,353$. Two ways are considered different, if on some operation edge or remaining part are selected differently.

翻译中…

Input

翻译中…

The first line contains a single integer $n$ ($2 \leq n \leq 5000$) — the number of vertices.

翻译中…

Each of the next $n-1$ lines contains two integers $s$, $f$ ($1 \leq s, f \leq n$, $s \neq f$) — description of edge $(s, f)$.

翻译中…

Next line contains a single integer $k$ ($1 \leq k \leq \min{(6, n - 1)}$) — the number of operations.

翻译中…

Next line contains $k$ integers $s_1, s_2, \ldots, s_k$ ($n \gt s_1 \gt s_2 \gt \ldots \gt s_k \geq 1$) — written numbers.

翻译中…

Output

翻译中…

Print a single integer — the answer to the problem by modulo $998\,244\,353$.

翻译中…

Note

翻译中…

In the first test there are four possible ways to make operations:

翻译中…
  • Remove the edge $(1, 2)$ and delete vertex $1$. Remove the edge $(2, 3)$ and delete vertex $2$.
  • Remove the edge $(1, 2)$ and delete vertex $1$. Remove the edge $(3, 2)$ and delete vertex $3$.
  • Remove the edge $(3, 2)$ and delete vertex $3$. Remove the edge $(1, 2)$ and delete vertex $1$.
  • Remove the edge $(3, 2)$ and delete vertex $3$. Remove the edge $(2, 1)$ and delete vertex $2$.
翻译中…

In the second test there are two possible ways to make operations:

翻译中…
  • Remove the edge $(4, 1)$ and delete the part with vertex $4$. Remove the edge $(2, 3)$ and delete the part with vertex $2$.
  • Remove the edge $(4, 1)$ and delete the part with vertex $4$. Remove the edge $(3, 2)$ and delete the part with vertex $3$.
翻译中…

样例

Input #1
3
1 2
2 3
2
2 1
Output #1
4
InputCopy OutputCopy
Input #2
7
2 1
3 2
4 1
5 3
6 4
7 4
2
4 2
Output #2
2
InputCopy OutputCopy
Input #3
7
1 2
1 3
1 4
2 5
3 6
4 7
1
2
Output #3
3
InputCopy OutputCopy
Input #4
7
1 2
1 3
1 4
2 5
3 6
4 7
4
6 5 2 1
Output #4
24
InputCopy OutputCopy
Input #5
8
1 2
2 3
3 4
3 5
3 6
3 7
3 8
2
7 4
Output #5
0
InputCopy OutputCopy
题目信息
题号
1799H
时间限制
2 s
内存限制
512 MB
标签
位运算
DFS 及类似
动态规划

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。