#abc459e. Select from Subtrees

Select from Subtrees

题目描述

有一棵包含 NN 个节点的有根树 TT,节点分别编号为 1,2,,N1, 2, \ldots, N。节点 11 是树 TT 的根节点,而节点 ii (2iN)(2 \le i \le N) 的(直接)父节点是 PiP_i

此外,每个节点 ii (1iN)(1 \le i \le N) 拥有 CiC_i 颗糖果。每一颗糖果都是不同的(可区分的)。

高桥给 NN 只松鼠下达了指令。具体来说,他向第 ii 只松鼠 (1iN)(1 \le i \le N) 下达如下指令:

  • 在以节点 ii 为根的子树中,选择并收集 DiD_i 颗糖果。

不同的松鼠不能拿走同一颗糖果。请输出所有松鼠选择糖果的可能方案数,对 998244353998244353 取模。

即使最终被选中的糖果集合完全相同,只要选择的松鼠不同,就会被视为不同的方案。

如果无法让所有松鼠按要求收集糖果,则输出 00

输入格式

N
P_2 P_3 ... P_N
C_1 C_2 ... C_N
D_1 D_2 ... D_N

输出格式

输出方案数对 998244353998244353 取模的结果。

输入示例 1

5
1 1 3 3
1 2 1 2 3
1 1 3 1 1

输出示例 1

144

示例 1 说明

记节点 11 拥有糖果 11,节点 22 拥有糖果 2,32,3,节点 33 拥有糖果 44,节点 44 拥有糖果 5,65,6,节点 55 拥有糖果 7,8,97,8,9

其中一种合法方案:

  • 松鼠 11 从根节点子树(节点 1,2,3,4,51,2,3,4,5)中拿走糖果 33
  • 松鼠 22 从节点 22 子树(只含节点 22)中拿走糖果 22
  • 松鼠 33 从节点 33 子树(节点 3,4,53,4,5)中拿走糖果 4,7,94,7,9
  • 松鼠 44 从节点 44 子树(只含节点 44)中拿走糖果 66
  • 松鼠 55 从节点 55 子树(只含节点 55)中拿走糖果 88

总共 144144 种合法方案,所以输出 144144

输入示例 2

2
1
1 1
2 1

输出示例 2

0

示例 2 说明

整棵树只有 22 颗糖果,无法满足两只松鼠都按指令收集,所以输出 00

输入示例 3

3
3 1
1000000000 1 1
1 1 1

输出示例 3

1755647

约束条件

  • 2N2×1052 \le N \le 2 \times 10^5
  • 1PiN1 \le P_i \le N
  • 1Ci1091 \le C_i \le 10^9
  • 1Di1 \le D_i
  • D1+D2++DN106D_1 + D_2 + \cdots + D_N \le 10^6
  • 所有输入值均为整数
  • TT 是一棵以节点 11 为根的有根树