#P2965. 第3题-连通块

第3题-连通块

题目内容

小红有一棵树,每个节点上都有一个整数权值。她希望通过删除若干条边,将这棵树分割

为若干个连通块,使得每个连通块中所有节点的权值之和都是偶数。

请你求出,对于每个k(1kn1)k(1 ≦k≦n-1),删除k条边后得到的k+1k+1个连通块满足条件的方案数。如果不存在满足条件的方案,对应的答案记为00

注意:两种删除边的方案若删除的边集合不同,则视为不同的方案。

输入描述

第一行给出一个整数nn,表示树的节点数。

第二行给出nn个整数W1,W2,...,WnW_1,W_2,...,W_n,其中WiW_i 表示节点ii的权值。

接下来n1n-1行,每行包含两个整数uuv(1u,vn,uv)v(1≦u,v≦n,u≠v),表示节点uu与节点vv 之间有一条边,保证给定的图构成一棵树。

2n1052≦n≦10^5

1wi1091≦w_i≦10^9

1u,vn1≦u,v≦n

输出描述

输出n1n-1个数,第ii个数表示删除ii条边后满足条件的方案数。由于答案可能非常大,请对答案取模109+7 10^9+7后输出。

样例1

输入

5
1 2 3 4 4
1 2
1 3
2 4
2 5

输出

3 3 1 0

说明

k=1k=1时,删除方案有{(1,21,2)},{(2,42,4)},{(2,52,5)},共33种。

k=2k=2时,删除方案有{(1,21,2), (2,42,4)},{(1,21,2),(2,52,5)},{(2,52,5), (2,42,4)},共33种。

k=3k=3时,删除方案有{(1,2),(2,4),(2,5)1,2), (2,4),(2,5)},共11种。