#abc459e. Select from Subtrees
Select from Subtrees
题目描述
有一棵包含 个节点的有根树 ,节点分别编号为 。节点 是树 的根节点,而节点 的(直接)父节点是 。
此外,每个节点 拥有 颗糖果。每一颗糖果都是不同的(可区分的)。
高桥给 只松鼠下达了指令。具体来说,他向第 只松鼠 下达如下指令:
- 在以节点 为根的子树中,选择并收集 颗糖果。
不同的松鼠不能拿走同一颗糖果。请输出所有松鼠选择糖果的可能方案数,对 取模。
即使最终被选中的糖果集合完全相同,只要选择的松鼠不同,就会被视为不同的方案。
如果无法让所有松鼠按要求收集糖果,则输出 。
输入格式
N
P_2 P_3 ... P_N
C_1 C_2 ... C_N
D_1 D_2 ... D_N
输出格式
输出方案数对 取模的结果。
输入示例 1
5
1 1 3 3
1 2 1 2 3
1 1 3 1 1
输出示例 1
144
示例 1 说明
记节点 拥有糖果 ,节点 拥有糖果 ,节点 拥有糖果 ,节点 拥有糖果 ,节点 拥有糖果 。
其中一种合法方案:
- 松鼠 从根节点子树(节点 )中拿走糖果 ;
- 松鼠 从节点 子树(只含节点 )中拿走糖果 ;
- 松鼠 从节点 子树(节点 )中拿走糖果 ;
- 松鼠 从节点 子树(只含节点 )中拿走糖果 ;
- 松鼠 从节点 子树(只含节点 )中拿走糖果 。
总共 种合法方案,所以输出 。
输入示例 2
2
1
1 1
2 1
输出示例 2
0
示例 2 说明
整棵树只有 颗糖果,无法满足两只松鼠都按指令收集,所以输出 。
输入示例 3
3
3 1
1000000000 1 1
1 1 1
输出示例 3
1755647
约束条件
- 所有输入值均为整数
- 是一棵以节点 为根的有根树