题目描述
有一棵有 N 个顶点的有根树,顶点编号为 1 到 N。顶点 1 是根,顶点 i(2≤i≤N)的父节点是 Pi。
给定一个非负整数 r 和一个非负整数列 A=(A1,…,AN)。你可以对这个数列进行任意次(也可以不进行)如下操作:
- 选择一个满足 i≥2 且 Ai≥1 的 i。将 Ai 变为 Ai−1,并将 APi 变为 APi+r。
请你求出,最终可能得到的不同非负整数列 A 的个数,答案对 998244353 取模。
输入格式
输入以如下格式从标准输入给出。
N P2 … PN r A1 … AN
输出格式
输出最终可能得到的不同非负整数列 A 的个数,对 998244353 取模。
样例 1
输入
3
1 1
2
1 1 1
输出
4
样例 2
输入
3
1 2
1
1 1 1
输出
5
样例 3
输入
3
1 2
2
1 1 1
输出
6
样例 4
输入
5
1 1 3 3
2
0 1 0 1 2
输出
48
样例 5
输入
5
1 1 3 3
123456789
1 2 3 4 5
输出
87782255
说明/提示
限制条件
- 2≤N≤300
- 1≤Pi≤i−1(2≤i≤N)
- 0≤r≤109
- 0≤Ai≤109
样例解释 1
最终可能得到的 A 有以下 4 种:(1,1,1)、(3,0,1)、(3,1,0)、(5,0,0)。
样例解释 2
最终可能得到的 A 有以下 5 种:(1,1,1)、(1,2,0)、(2,0,1)、(2,1,0)、(3,0,0)。
样例解释 3
最终可能得到的 A 有以下 6 种:(1,1,1)、(1,3,0)、(3,0,1)、(3,2,0)、(5,1,0)、(7,0,0)。
由 ChatGPT 4.1 翻译