CF1799H.Tree Cutting

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a tree with nn vertices.

A hero kk 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 998244353998\,244\,353 . Two ways are considered different, if on some operation edge or remaining part are selected differently.

输入格式

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

Each of the next n1n-1 lines contains two integers ss , ff ( 1s,fn1 \leq s, f \leq n , sfs \neq f ) — description of edge (s,f)(s, f) .

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

Next line contains kk integers s1,s2,,sks_1, s_2, \ldots, s_k ( n>s1>s2>>sk1n > s_1 > s_2 > \ldots > s_k \geq 1 ) — written numbers.

输出格式

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

输入输出样例

  • 输入#1

    3
    1 2
    2 3
    2
    2 1

    输出#1

    4
  • 输入#2

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

    输出#2

    2
  • 输入#3

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

    输出#3

    3
  • 输入#4

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

    输出#4

    24
  • 输入#5

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

    输出#5

    0

说明/提示

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

  • Remove the edge (1,2)(1, 2) and delete vertex 11 . Remove the edge (2,3)(2, 3) and delete vertex 22 .
  • Remove the edge (1,2)(1, 2) and delete vertex 11 . Remove the edge (3,2)(3, 2) and delete vertex 33 .
  • Remove the edge (3,2)(3, 2) and delete vertex 33 . Remove the edge (1,2)(1, 2) and delete vertex 11 .
  • Remove the edge (3,2)(3, 2) and delete vertex 33 . Remove the edge (2,1)(2, 1) and delete vertex 22 .

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

  • Remove the edge (4,1)(4, 1) and delete the part with vertex 44 . Remove the edge (2,3)(2, 3) and delete the part with vertex 22 .
  • Remove the edge (4,1)(4, 1) and delete the part with vertex 44 . Remove the edge (3,2)(3, 2) and delete the part with vertex 33 .
首页