#P11032. 『DABOI Round 1』Develop a Tree

『DABOI Round 1』Develop a Tree

题目背景

小 Z 看不惯树,所以他总想在树上随机添加一些边。他认为二分图是很和谐的,所以他想知道将一棵树变为二分图的方案数。你能否回答他的询问?

题目描述

对于一颗无向有根树,定义 f(i,k)f(i,k) 表示在以 ii 为根的子树中,在其内部连 kk 条边,使得这颗子树变为一个二分图的方案数。请注意,加边时允许与原树边重边,但任意两条新加的边都不能重合。

给定一棵 nn 个点的无向有根树,根节点为 11 号点。对于每个 i[1,n]i\in [1,n],求 f(i,k)f(i,k)pip_i 取模的值。

输入格式

输入共 n+1n+1 行。

1122 个整数,分别表示树的点数 nn 和参数 kk

接下来,第 22nn 行,每行 22 个正整数,分别表示一条边连接的两个点的编号 uiu_iviv_i

n+1n+1nn 个整数,分别表示每次询问时的模数 pip_i

输出格式

输出共 11nn 个整数,分别表示每次询问的答案。

6 1
1 3
1 5
1 6
2 5
3 4
998244353 998244353 998244353 998244353 998244353 998244353
9 0 1 0 1 0

提示

【样例 1 解释】

在这棵树上,连接 $(u,v)\in\{(1,3),(1,5),(1,6),(2,3),(2,5),(2,6),(3,4),(4,5),(4,6)\}$ 即可使树变为二分图。


【数据范围】

本题开启捆绑测试

对于 100%100\% 的数据,1n5×1051\le n\le5\times10^51k201\le k\le 201ui,vin1\le u_i,v_i\le n2pi2×1092\le p_i\le2\times10^9pip_i 为素数。最多有 9999 个大小不同的 pip_i。保证 pi>kp_i>k

Subtask\text{Subtask} nn\le Special\text{Special} Score\text{Score}
11 5×1055\times10^5 A\text{A} 1010
22 10310^3 No\text{No} 1515
33 5×1055\times10^5 B\text{B}
44 No\text{No} 6060
  • Special A\text{Special A}:保证 k=1k=1
  • Special B\text{Special B}:保证 vi=ui+1v_i=u_i+1

【提示】

本题 IO 量较大,请使用较快速的 IO 方式。