题库练习 「USACO 2020 US Open Platinum」Circus
← 上一题 下一题 →

A6406 | 「USACO 2020 US Open Platinum」Circus

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

**题目译自 [USACO 2020 US Open Contest, Platinum](http://usaco.org/index.php?page=open20results) Problem 3. [Circus](http://www.usaco.org/index.php?page=viewproblem2&cpid=1046)**

Farmer John 马戏团中的 $N$ 头奶牛正在为即将到来的演出做准备。演出全部在一棵节点编号为 $1\ldots N$ 的树上举行。演出的「初始状态」被定义为一个整数 $K$($1\leq K\leq N$)使得奶牛 $1\ldots K$ 分布在树上的节点上,并且没有任何两头牛位于相同的节点。

在一场演出中,奶牛们可以「移动」任意次数。在一次「移动」中,一头奶牛可以从自己当前所处的节点移动到一个未被占据的相邻节点。如果一个状态可以通过一系列移动到达另一个状态,我们就称这两个初始状态是等价的。

对于每一个 $1\leq K\leq N$,你需要帮助奶牛确定有多少类等价的初始状态。即选出最多的起始状态数目,使得它们两两不等价。由于数字可能很大,所以只需输出答案 $\bmod 10^9+7$ 的结果。

输入格式

从标准输入中读入数据。

第一行一个整数 $N$。

接下来的 $N-1$ 行,每行两个整数 $a_i,b_i$,表示树中有一条连接 $a_i$ 和 $b_i$ 的边。

输出格式

输出到标准输出中。

输出共 $N$ 行,对于每一个 $1\leq i\leq N$,在第 $i$ 行输出 $K=i$ 时的答案 $\bmod 10^9+7$ 的结果。

输入输出样例

输入 #1
5
1 2
2 3
3 4
3 5
输出 #1
1
1
3
24
120
输入 #2
8
1 3
2 3
3 4
4 5
5 6
6 7
6 8
输出 #2
1
1
1
6
30
180
5040
40320
C++ 编辑器
输入
输出