测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A9639. Appleman and Tree

编程题 普及/提高-

题目描述

Appleman has a tree with $n$ vertices. Some of the vertices (at least one) are colored black and other vertices are colored white.

Consider a set consisting of $k$ $(0<=k<n)$ edges of Appleman's tree. If Appleman deletes these edges from the tree, then it will split into $(k+1)$ parts. Note, that each part will be a tree with colored vertices.

Now Appleman wonders, what is the number of sets splitting the tree in such a way that each resulting part will have exactly one black vertex? Find this number modulo $1000000007$ ( $10^{9}+7$ ).

输入格式

The first line contains an integer $n$ ( $2<=n<=10^{5}$ ) — the number of tree vertices.

The second line contains the description of the tree: $n-1$ integers $p_{0},p_{1},...,p_{n-2}$ ( $0<=p_{i}<=i$ ). Where $p_{i}$ means that there is an edge connecting vertex $(i+1)$ of the tree and vertex $p_{i}$ . Consider tree vertices are numbered from $0$ to $n-1$ .

The third line contains the description of the colors of the vertices: $n$ integers $x_{0},x_{1},...,x_{n-1}$ ( $x_{i}$ is either $0$ or $1$ ). If $x_{i}$ is equal to $1$ , vertex $i$ is colored black. Otherwise, vertex $i$ is colored white.

输出格式

Output a single integer — the number of ways to split the tree modulo $1000000007$ ( $10^{9}+7$ ).

输入输出样例

输入 #1
3
0 0
0 1 1
输出 #1
2
输入 #2
6
0 1 1 0 4
1 1 0 0 1 0
输出 #2
1
输入 #3
10
0 1 2 1 4 4 4 0 8
0 0 0 1 0 1 1 0 0 1
输出 #3
27
上一题 去做题 下一题