8003 - 命运

通过次数

16

提交次数

78

时间限制 : 1 秒
内存限制 : 1024 MB

在遥远的未来,物理学家终于发现了时间和因果的自然规律。即使在一个人出生前,我们也可以通过理论分析知晓他或她人生的一些信息,换言之,物理学允许我们从一定程度上“预言”一个人的“命运”。

简单来说,一个人的命运是一棵由时间点构成的有根树 T:树的根结点代表着出生,而叶结点代表着死亡。每个非叶结点 u 都有一个或多个孩子 v_1,v_2,v_3,...v_n,表示这个人在 u 所代表的时间点做出的 n个不同的选择可以导向的不同的可能性。形式化的,一个选择就是树上的一条边 (u,v_i),其中 uv_i的父结点。

一个人的一生是从出生(即根结点)到死亡(即某一个叶子结点)的一条不经过重复结点的路径,这条路径上任何一个包含至少一条边的子路径都是这个人的一段人生经历,而他或她以所有可能的方式度过一生,从而拥有的所有人生经历,都被称为潜在的人生经历。换言之,所有潜在的人生经历就是所有 uv 的路径,满足 u,v \in T,并且 uv 的祖先。在数学上,这样一个潜在的人生经历被记作有序对 (u,v),树 T 所有潜在的人生经历的集合记作 P_T

物理理论不仅允许我们观测代表命运的树,还能让我们分析一些潜在的人生经历是否是“重要”的。一个人所作出的每一个选择——即树上的每一条边——都可能是重要或不重要的。一段潜在的人生经历被称为重要的,当且仅当其对应的路径上存在一条边是重要的。我们可以观测到一些潜在的人生经历是重要的:换言之,我们可以观测得到一个集合 Q \subseteq p_T ,满足其中的所有潜在的人生经历 (u,v) \in Q 都是重要的。

T 的形态早已被计算确定,集合 Q 也早已被观测得到,一个人命运的不确定性已经大大降低了。但不确定性仍然是巨大的——来计算一下吧,对于给定的树 T 和集合 Q,存在多少种不同的方案确定每条边是否是重要的,使之满足所观测到的 Q 所对应的限制:即对于任意 (u,v) \in Q,都存在一条 uv 路径上的边被确定为重要的。

由于答案可能非常大,你只需要输出结果对 998,244,353(一个素数)取模的结果。

输入

第一行包含一个正整数 n,表示树 T 的大小,树上结点从 1n 编号,1 号结点为根结点

接下来 n−1 行每行包含空格隔开的两个数 x_i,y_i,满足 1 \leq x_i,y_i \leq n,表示树上的结点 x_i,y_i 之间存在一条边,但并不保证这条边的方向;

接下来一行包含一个非负整数 m,表示所观测得到信息的条数。

接下来 m 行每行包含空格隔开的两个数 u_i,v_i,表示 (u_i,v_i) \in Q。请注意:输入数据可能包含重复的信息,换言之可能存在 i\not =j,满足 u_i=u_j,v_i=v_j

1 \leq n \leq 5* \gdef\foo#1{#1^5} \foo{10}

1 \leq m \leq 5* \gdef\foo#1{#1^5} \foo{10}

输出

输出仅一行一个整数,表示方案数对 998,244,353 取模的结果。

样例

输入

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

输出

10

输入

15
2 1
3 1
4 3
5 2
6 3
7 6
8 4
9 5
10 7
11 5
12 10
13 3
14 9
15 8
6
3 12
5 11
2 5
3 13
8 15
1 13

输出

960

提示

来源

NOI