#P16555. [Bapc2023]Jungle Job

[Bapc2023]Jungle Job

题目背景

当地的丛林正在被猴群占领。每天都会有一只新猴子来到你最喜欢的一棵树上,这棵树共有 nn 根树枝。

每根树枝最多容纳一只猴子。猴子是群居动物,因此所有被占据的树枝必须构成一个连通块。由于你无法区分猴子个体,一张照片只由“哪些树枝上有猴子”决定。

下图展示了样例 1 在第 3 天时的四种不同照片。只有相互接触的树枝才相连;图中树枝 1 与 2、树枝 3 与 4 之间存在细小空隙,因此并不相连。

样例 1 在第 3 天的四种连通占据方式

题目描述

给定一棵包含 nn 个结点的树。对于每个 k=1,2,,nk=1,2,\ldots,n,求恰好选择 kk 个结点,并使这些结点在树上诱导出的子图连通的方案数。

答案对 109+710^9+7 取模。

输入格式

第一行包含一个整数 nn1n10001\le n\le 1000),表示树枝数量。

接下来 n1n-1 行。第 ii 行(1in11\le i\le n-1)包含一个整数 pip_i0pi<i0\le p_i<i),表示结点 ii 与结点 pip_i 相连。

结点编号为 0,1,,n10,1,\ldots,n-1。结点 00 与树根相连,并且本身也可以容纳一只猴子。

输出格式

输出 nn 个整数。第 kk 个整数表示大小恰好为 kk 的连通子树数量,对 109+710^9+7 取模。

整数之间可以使用任意空白字符分隔。

样例 1

输入

5
0
0
1
1

输出

5
4
4
3
1

样例 2

输入

3
0
1

输出

3
2
1