CF461B.Appleman and Tree
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
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 (109 + 7).
Appleman 有一棵包含 n 个顶点的树。其中部分顶点(至少一个)被染成黑色,其余顶点被染成白色。
考虑由 Appleman 的树中 k 条边(0≤k<n)构成的一个集合。若 Appleman 将这些边从树中删除,则该树将分裂为 k+1 个连通部分。注意,每个部分仍是一棵树,且其顶点具有颜色。
现在 Appleman 想知道:有多少种边集,使得删除这些边后,每个连通部分恰好包含一个黑点?请输出该数目对 1000000007(即 109+7)取模的结果。
输入格式
The first line contains an integer n (2 ≤ n ≤ 105) — 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.
第一行包含一个整数 n(2≤n≤105)——树的顶点数量。
第二行包含树的描述:n−1 个整数 p0,p1,…,pn−2(0≤pi≤i)。其中 pi 表示树中顶点 i+1 与顶点 pi 之间存在一条边。树的顶点编号为 0 到 n−1。
第三行包含顶点颜色的描述:n 个整数 x0,x1,…,xn−1(每个 xi 为 0 或 1)。若 xi=1,则顶点 i 为黑色;否则顶点 i 为白色。
输出格式
Output a single integer — the number of ways to split the tree modulo 1000000007 (109 + 7).
输出一个整数——将树分割的方式数目对 1000000007(即 109+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
输入解题思路,AI测评打分。不知道怎么写?