定义 dfs(u)
表示 u
的权值。
如果 u
有两个子节点,则先计算两个子节点的权值,然后进行对应的运算得到 u
的权值。
如果 u
没有子节点,则 u
的权值为 1 。
时间复杂度:O(n)
塔子哥有一棵节点数为 n 的完整二叉树,对于一个完整二叉树的定义是:要么每个节点有两个子节点,要么每个节点没有子节点。
每个节点有两种运算,要么为加法,要么为乘法。如下给出一个长度为 n 的数组 c 。
ci=0 表示节点 i 的运算是加法,ci=1 表示节点 i 的运算是乘法。
现在,塔子哥问你这个完整二叉树的根节点的权值是多少。
第一行,一个正整数 n(1≤n≤105) 表示完整二叉树中的节点个数。
第二行,n−1 个正整数 p[2,3,...,n],p[i](1≤p[i]≤n) 表示第 i 个节点的父节点,1 号节点是根节点。
第三行,n 个整数 c[1,2,...,n] ,含义如题面描述所示
数据保证形成满足题目描述的二叉完整树。
一个整数,表示根节点的值,答案对 109+7 取模。
输入
3
1 1
1 1 1
输出
1
说明
2 号节点和 3 号节点权值均为 1 ,1 号节点是乘法运算,故 1 号节点的权值为 1 。
本题属于以下题库,请选择所需题库进行购买