「OICon-02」Subtree Value
题目描述
给出一棵 $n$ 个节点的树,每个点有点权 $a_v$。定义一棵树的一个子连通块为一个树中点的**非空集合**,满足这些点在树上形成一个连通块。定义子连通块 $S$ 的权值为 $\prod_{v\in S}(a_v+|S|)$。求所有子连通块的权值之和对 $U^V$ 取模。
输入输出格式
输入格式
第一行,三个正整数 $n,U,V$,分别表示节点个数,以及模数($U^V$)。
第二行,$n-1$ 个正整数 $f_2,f_3,\dots,f_n$,分别表示以 $1$ 节点为根节点的情况下第 $i$ 个点的父亲节点。
第三行,$n$ 个非负整数 $a_i$,表示每个点的点权。
输出格式
一行,一个正整数,表示所有子联通块的权值之和,对 $U^V$ 取模。
输入输出样例
输入样例 #1
3 10 6
1 1
1 2 3
输出样例 #1
156
输入样例 #2
11 4 6
1 1 2 3 4 4 4 5 6 7
325 190 400 325 380 165 334 400 80 171 340
输出样例 #2
678
说明
### 样例解释
对于样例 $1$,以下子连通块的权值分别是:
* $\{1\}$:$(1+1)=2$;
* $\{2\}$:$(2+1)=3$;
* $\{3\}$:$(3+1)=4$;
* $\{1,2\}$:$(1+2)\times(2+2)=12$;
* $\{1,3\}$:$(1+2)\times(3+2)=15$;
* $\{1,2,3\}$:$(1+3)\times(2+3)\times(3+3)=120$。
总和为 $2+3+4+12+15+120=156$,对 $10^6$ 取模后为 $156$。
### 数据范围
**本题采用捆绑测试。**
| $\text{Subtask}$ | 特殊性质 | $\text{Score}$ |
|:--:|:--:|:--:|
| $1$ | $n\leq10$ | $5$ |
| $2$ | $n\leq150$ | $8$ |
| $3$ | $n\leq500$ | $11$ |
| $4$ | $U=2,V=1$ | $7$ |
| $5$ | $V=1$ | $23$ |
| $6$ | $U\mid a_i$ | $23$ |
| $7$ | 无特殊限制 | $23$ |
对于 $100\%$ 的数据:$1\leq n\leq2000$,$1\leq f_i<i$,$2\leq U\leq10$,$1\leq V\leq6$,$0\leq a_i< U^V$。