#1342. [CZOJ 一周一测 R21 F] C-Tree(?

[CZOJ 一周一测 R21 F] C-Tree(?

题目描述

给定一棵包含 nn 个结点的树 TT、一个长度为 nn 的数列 aa 和一个整数 pp,其中树 TT 的根结点为 11 号结点,结点 ii 的权值为 aia_i

我们定义:

  • g(x)g(x) 为结点 xx 的父亲结点。特别地,g(1)=1g(1)=1
  • d(x)d(x) 为结点 xx 到根结点之间的简单路径所包含的边的数量。特别地,d(1)=0d(1)=0

我们继而定义:

$$f_k(x)=\begin{cases}x&k=0\\g(f_{k-1}(x))&k\ge 1\end{cases} $$

你需要求出 $ \sum\limits_{i=1}^{n}\sum\limits_{j=0}^{d(i)} \left( \binom{j+p }{j}\times a_{f_j(i)}\right)$ 的值。

由于答案可能很大,所以你只需要输出答案对 mm 取模的结果。

其中,(ij)\binom{i}{j} 表示组合数,此处 iijj 为满足 jij \le i 的自然数,(ij)\binom{i}{j} 的意义为从 ii 个不同的物品中选择 jj 个的方案数,例如 (32)=3\binom{3}{2}=3(53)=10\binom{5}{3}=10(40)=1\binom{4}{0}=1(33)=1\binom{3}{3}=1

输入格式

  • 第一行输入三个整数 n,p,mn,p,m
  • 第二行输入 nn 个整数,表示给定的数列 aa
  • 第三行输入 n1n-1 个整数,其中第 ii 个整数表示 g(i+1)g(i+1) 的值。

输出格式

输出一行一个整数,表示答案。

输入输出样例 #1

输入 #1

5 7 124
11 4 13 12 14
1 2 2 2

输出 #1

62

输入输出样例 #2

输入 #2


4 0 180
8 8 14 8
1 1 3

输出 #2

76

输入输出样例 #3

输入 #3

3 5 105
15 8 8 
1 1 

输出 #3

1

说明/提示

【样例解释 #3】

对于第 33 组数据,答案为 $\binom{5}{0}\times(15+8+8)+\binom{6}{1}\times(15+15)=211$,211mod105=1211\bmod 105=1

【数据范围】

对于所有数据,1n2×1041 \le n \le 2 \times 10^40p1030 \le p \le 10^31ai<m109,1g(i)i11 \le a_i < m \le 10^9,1 \le g(i) \le i-1

本题采用捆绑测试计分。

Sub 编号 约束条件 分数
1 n1000n \le 1000  15 ~15~
2 保证树为菊花图,即 g(i)=1g(i)=1  15~15
3 保证树为一条链,即 g(i)=i1g(i)=i-1  20 ~20~
4 m=998244353m=998244353  20~20
5 无特殊限制  30~30

其中子任务 5 依赖子任务 1,2,3,4。