[NOI Online #2 提高组] 游戏
题目背景
1s 512M
题目描述
小 A 和小 B 正在玩一个游戏:有一棵包含 $n=2m$ 个点的有根树(点从 $1\sim n$ 编号),它的根是 $1$ 号点,初始时两人各拥有 $m$ 个点。游戏的每个回合两人都需要选出一个自己拥有且之前未被选过的点,若对手的点在自己的点的子树内,则该回合自己获胜;若自己的点在对方的点的子树内,该回合自己失败;其他情况视为平局。游戏共进行 $m$ 回合。
作为旁观者的你只想知道,在他们随机选点的情况下,第一次非平局回合出现时的回合数的期望值。
为了计算这个期望,你决定对于 $k=0,1,2,\cdots,m$,计算出非平局回合数为 $k$ 的情况数。两种情况不同当且仅当存在一个小 A 拥有的点 $x$,小 B 在 $x$ 被小 A 选择的那个回合所选择的点不同。
由于情况总数可能很大,你只需要输出答案对 $998244353$ 取模后的结果。
输入输出格式
输入格式
第一行一个正整偶数 $n$ 表示树的结点数。
第二行一个长度为 $n$ 的 01 字符串,第 $i$ 个字符为 $0$ 表示 $i$ 号点被小 A 拥有,否则被小 B 拥有。保证 $0$、$1$ 的个数相同。
接下来 $n-1$ 行每行两个正整数 $u$, $v$,表示树中的一条边。
输出格式
共 $\frac{n}{2}+1$ 行每行一个整数,第 $i$ 行的整数表示 $k=i-1$ 时的答案。
输入输出样例
输入样例 #1
8
10010011
1 2
1 3
2 4
2 5
5 6
3 7
3 8
输出样例 #1
0
10
10
4
0
说明
| 测试点编号 | $n =$ | 特殊性质 |
| :-- | :-- | :-- |
| 1 $\sim$ 4 | $20$ | 无 |
| 5 $\sim$ 8 | $50$ | 无 |
| 9 $\sim$ 10 | $300$ | 树退化为一条链 |
| 11 $\sim$ 12 | $300$ | 无 |
| 13 $\sim$ 14 | $500$ | 无 |
| 15 $\sim$ 16 | $5000$ | 树退化为一条链 |
| 17 $\sim$ 20 | $5000$ | 无 |