atcoder#ABC207F. [ABC207F] Tree Patrolling

[ABC207F] Tree Patrolling

Score : 600600 points

Problem Statement

You have a tree with NN vertices, numbered 11 through NN. The ii-th edge connects Vertex uiu_i and Vertex viv_i.

You will choose some vertices (possibly none) and place a takahashi in each of them to guard the tree. A takahashi placed at Vertex xx will guard xx itself and the vertices directly connected to xx by an edge.

There are 2N2^N ways to choose vertices for placing takahashi. In how many of them will there be exactly KK vertices guarded by one or more takahashi?

Find this count and print it modulo (109+7)(10^9+7) for each K=0,1,,NK=0,1,\ldots,N.

Constraints

  • 1N20001 \leq N \leq 2000
  • 1ui<viN1 \leq u_i \lt v_i \leq N
  • The given graph is a tree.
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

NN

u1u_1 v1v_1

u2u_2 v2v_2

\hspace{0.6cm}\vdots

uN1u_{N-1} vN1v_{N-1}

Output

Print N+1N+1 lines. The ii-th line should contain the answer for K=i1K=i-1.

3
1 3
1 2
1
0
2
5

There are eight ways to choose vertices for placing takahashi, as follows:

  • Place a takahashi at no vertices, guarding no vertices.
  • Place a takahashi at Vertex 11, guarding all vertices.
  • Place a takahashi at Vertex 22, guarding Vertices 11 and 22.
  • Place a takahashi at Vertex 33, guarding Vertices 11 and 33.
  • Place a takahashi at Vertices 11 and 22, guarding all vertices.
  • Place a takahashi at Vertices 11 and 33, guarding all vertices.
  • Place a takahashi at Vertices 22 and 33, guarding all vertices.
  • Place a takahashi at all vertices, guarding all vertices.
5
1 3
4 5
1 5
2 3
1
0
2
5
7
17
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