Preparando MOJI

Tree Cutting

2000ms 524288K

Description:

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 > s_1 > s_2 > \ldots > s_k \geq 1$$$) — written numbers.

Output:

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

Sample Input:

3
1 2
2 3
2
2 1

Sample Output:

4

Sample Input:

7
2 1
3 2
4 1
5 3
6 4
7 4
2
4 2

Sample Output:

2

Sample Input:

7
1 2
1 3
1 4
2 5
3 6
4 7
1
2

Sample Output:

3

Sample Input:

7
1 2
1 3
1 4
2 5
3 6
4 7
4
6 5 2 1

Sample Output:

24

Sample Input:

8
1 2
2 3
3 4
3 5
3 6
3 7
3 8
2
7 4

Sample Output:

0

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$$$.

Informação

Codeforces

Provedor Codeforces

Código CF1799H

Tags

bitmasksdfs and similardp

Submetido 0

BOUA! 0

Taxa de BOUA's 0%

Datas 09/05/2023 10:37:25

Relacionados

Nada ainda