luogu#P10175. 「OICon-02」Subtree Value

    ID: 14135 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>动态规划,dpO2优化树形 dp组合数学

「OICon-02」Subtree Value

题目描述

给出一棵 nn 个节点的树,每个点有点权 ava_v。定义一棵树的一个子连通块为一个树中点的非空集合,满足这些点在树上形成一个连通块。定义子连通块 SS 的权值为 vS(av+S)\prod_{v\in S}(a_v+|S|)。求所有子连通块的权值之和对 UVU^V 取模。

输入格式

第一行,三个正整数 n,U,Vn,U,V,分别表示节点个数,以及模数(UVU^V)。

第二行,n1n-1 个正整数 f2,f3,,fnf_2,f_3,\dots,f_n,分别表示以 11 节点为根节点的情况下第 ii 个点的父亲节点。

第三行,nn 个非负整数 aia_i,表示每个点的点权。

输出格式

一行,一个正整数,表示所有子联通块的权值之和,对 UVU^V 取模。

3 10 6
1 1
1 2 3
156
11 4 6
1 1 2 3 4 4 4 5 6 7
325 190 400 325 380 165 334 400 80 171 340
678

提示

样例解释

对于样例 11,以下子连通块的权值分别是:

  • {1}\{1\}(1+1)=2(1+1)=2
  • {2}\{2\}(2+1)=3(2+1)=3
  • {3}\{3\}(3+1)=4(3+1)=4
  • {1,2}\{1,2\}(1+2)×(2+2)=12(1+2)\times(2+2)=12
  • {1,3}\{1,3\}(1+2)×(3+2)=15(1+2)\times(3+2)=15
  • {1,2,3}\{1,2,3\}(1+3)×(2+3)×(3+3)=120(1+3)\times(2+3)\times(3+3)=120

总和为 2+3+4+12+15+120=1562+3+4+12+15+120=156,对 10610^6 取模后为 156156

数据范围

本题采用捆绑测试。

Subtask\text{Subtask} 特殊性质 Score\text{Score}
11 n10n\leq10 55
22 n150n\leq150 88
33 n500n\leq500 1111
44 U=2,V=1U=2,V=1 77
55 V=1V=1 2323
66 UaiU\mid a_i
77 无特殊限制

对于 100%100\% 的数据:1n20001\leq n\leq20001fi<i1\leq f_i<i2U102\leq U\leq101V61\leq V\leq60ai<UV0\leq a_i< U^V