定义 dfs(u)
表示 u
的权值。
如果 u
有子节点,则计算子节点的哈希值,然后通过题目中给出的哈希值计算公式计算 u
的哈希值。
如果 u
没有子节点,则 u
的哈希值为 0 。
塔子哥有一棵节点数为 n 的有根树,根节点为 1 号节点。
他定义节点 u 的哈希值 $H_u=\left ( \sum_{v \in son(u)}^{} \right (h_v+A^u)*B) )mod\ M$,如果节点 u 是叶子节点,Hu=0 。
其中 son(u) 表示节点 u 的所有儿子节点构成的集合。
现在,塔子哥问你这棵有根树的根节点的哈希值是多少。
第一行,四个正整数 n(1≤n≤105),A,B,M(1≤A,B,M≤109) 。含义见题目描述。
第二行,n−1 个正整数 p[2,3,...,n],p[i](1≤p[i]≤n) 表示节点 i 和 p[i] 之间有一条边。
一个整数,表示根节点的哈希值。
输入
3 1 1 10
1 2
输出
2
说明
3 号节点哈希值为 0 ,2 号节点哈希值为 1 ,1 号节点哈希值为 2 。
本题属于以下题库,请选择所需题库进行购买