问题 F: 守护芒果树

内存限制:1024 MB 时间限制:3.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

有一棵具有 $N$ 个顶点的芒果树,顶点编号从 $1$ 到 $N$。树上有 $N-1$ 条边,第 $i$ 条边连接顶点 $u_i$ 和顶点 $v_i$ 。
你需要选择一些顶点(可能为零个),并在每个选中的顶点上放置一个守护兽以守护这棵芒果树。放置在顶点 $u$ 上的守护兽会守护 $u$ 本身以及与 $u$ 直接相连的顶点。
选择放置守护兽的顶点有 $2^N$ 种方式。在其中有多少种方式中,使得恰好有 $K$ 个顶点被至少一个守护兽守护?
计算并输出对于每个 $K=0,1,...,N$ ,满足条件的放置方式数量,答案对 $10^9+7$ 取模。

输入

输入共 $N$ 行,
第一行包括一个正整数 $N(1 \leq N \leq 2000)$ ,表示芒果树点数
第二行到第 $N$ 行,每行包括两个正整数 $u_i$ $v_i$ $(1 \leq u_i < v_i \leq N)$ (给定图形为一颗树)

输出

输出共 $N+1$ 行,
每行包括一个整数,第 $i$ 行表示 $K=i-1$ 时的答案对 $10^9+7$ 取模

样例输入 复制

3
1 3
1 2

样例输出 复制

1
0
2
5

提示

样例2:
输入:
10
6 10
1 8
2 7
5 6
3 8
3 4
7 10
4 9
2 8

输出:
1
0
3
8
15
32
68
110
196
266
325