AT_pakencamp_2024_day2_e Excluded Children

题目描述

给定一棵以顶点 $1$ 为根的有 $N$ 个顶点的有根树,对于每个顶点 $i$,它的父节点是 $P_i$。此外,每个顶点都可以填写一个非负整数。 你首先要给这棵树的所有叶子结点(即没有子结点的节点)填写 $0$ 或 $1$。然后,对于所有非叶子结点,对于每个顶点 $v$,你需要填写其所有子结点上所写的数的集合的 $\mathrm{mex}$。 严格来说,设在顶点 $v$ 上填写的非负整数为 $A_v$,需满足以下条件: - 若顶点 $v$ 是叶子,则 $A_v = 0$ 或 $A_v = 1$。 - 若顶点 $v$ 不是叶子,记其子结点为 $C_1, C_2, \ldots, C_M$,则 $A_v = \mathrm{mex}(\{A_{C_1}, A_{C_2}, ..., A_{C_M}\})$。 这里,对任意非负整数集合 $S$,$\mathrm{mex}(S)$ 表示不属于 $S$ 的最小非负整数。 若叶子的个数为 $L$,则顶点上填写非负整数的方法总共有 $2^L$ 种。现在请你分别对于 $k = 0, 1, 2, \ldots, N$,求出在这 $2^L$ 种填写方法中,最终使顶点 $1$ 上填写的数为 $k$ 的方案数,并将结果对 $998244353$ 取模输出。

输入格式

输入为标准输入,格式如下: > $N$ $P_2$ $P_3$ \ldots $P_N$

输出格式

输出共 $N+1$ 行。第 $i$ 行($0 \leq i \leq N$)输出最终顶点 $1$ 上填写 $i$ 的方案数对 $998244353$ 取模的结果。

说明/提示

### 小子任务 1.(4 分)叶子结点个数不超过 $5$ 2.(8 分)$P_i = 1$($2 \leq i \leq N$) 3.(8 分)$P_i = \lfloor \frac{i}{2} \rfloor$($2 \leq i \leq N$) 4.(15 分)$N \leq 100$ 5.(25 分)$N \leq 5000$ 6.(40 分)无额外限制 ### 样例解释 1 在该样例输入中,叶子结点为顶点 $3, 4, 5$。比如,依次给它们分别填写 $0, 1, 0$: - 顶点 $2$ 的子结点是顶点 $4, 5$,分别填写了 $1, 0$,所以顶点 $2$ 上填写的数为 $\mathrm{mex}(\{0,1\}) = 2$。 - 顶点 $1$ 的子结点是顶点 $2, 3$,分别填写了 $2, 0$,所以顶点 $1$ 上填写的数为 $\mathrm{mex}(\{0,2\}) = 1$。 因此,这种情况下顶点 $1$ 的数字为 $1$。 本样例满足小子任务 $1,3,4,5,6$。 ### 样例解释 2 本样例满足小子任务 $1,4,5,6$。 ### 数据范围 - $1 \leq N \leq 2 \times 10^{5}$ - $1 \leq P_i < i$($2 \leq i \leq N$) - 所有输入均为整数。 由 ChatGPT 5 翻译