#abc222e. [abc222_e]Red and Blue Tree

[abc222_e]Red and Blue Tree

问题描述

给定一个具有 NN 个顶点的树,一个由 MM 个数字 A=(A1,ldots,AM)A=(A_1,\\ldots,A_M) 组成的序列,以及一个整数 KK
顶点编号为 11NN,第 ii 条边连接顶点 UiU_iViV_i

我们将这棵树的 N1N-1 条边中的每一条都涂成红色或蓝色。在 2N12^{N-1} 种方式中,找到满足以下条件的数量,对 998244353998244353 取模。

条件:
让我们把一个棋子放在顶点 A1A_1 上,并按照顺序对每个 i=1,ldots,M1i=1,\\ldots,M-1,沿着最短路径从顶点 AiA_i 移动到顶点 Ai+1A_{i+1}。移动结束后,满足 RB=KR-B=K,其中 RRBB 分别是棋子经过红色边和蓝色边的次数。

约束条件

  • 2leqNleq10002 \\leq N \\leq 1000
  • 2leqMleq1002 \\leq M \\leq 100
  • Kleq105|K| \\leq 10^5
  • 1leqAileqN1 \\leq A_i \\leq N
  • 1leqUi,VileqN1\\leq U_i,V_i\\leq N
  • 给定的图是一棵树。
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入中给出:

NN MM KK A1A_1 A2A_2 ldots\\ldots AMA_M U1U_1 V1V_1 vdots\\vdots UN1U_{N-1} VN1V_{N-1}

输出

输出答案。


示例输入 1

4 5 0
2 3 2 1 4
1 2
2 3
3 4

示例输出 1

2

如果我们将第 11 条和第 33 条边涂成红色,将第 22 条边涂成蓝色,棋子经过以下数量的红色和蓝色边:

  • 当从顶点 22 移动到 33 时,经过 00 条红色边和 11 条蓝色边,
  • 当从顶点 33 移动到 22 时,经过 00 条红色边和 11 条蓝色边,
  • 当从顶点 22 移动到 11 时,经过 11 条红色边和 00 条蓝色边,
  • 当从顶点 11 移动到 44 时,经过 22 条红色边和 11 条蓝色边,

总共经过 33 条红色边和 33 条蓝色边,满足条件。

图示

满足条件的另一种方式是将第 11 条和第 33 条边涂成蓝色,将第 22 条边涂成红色。没有其他满足条件的方法,因此答案是 22


示例输入 2

3 10 10000
1 2 1 2 1 2 2 1 1 2
1 2
1 3

示例输出 2

0

可能没有办法涂色以满足条件。


示例输入 3

10 2 -1
1 10
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10

示例输出 3

126

示例输入 4

5 8 -1
1 4 1 4 2 1 3 5
1 2
4 1
3 1
1 5

示例输出 4

2