题库练习 Select from Subtrees
← 上一题 下一题 →

A7678 | Select from Subtrees

时间限制2s
内存限制1024MB
通过 / 提交0/0

题目描述

有一棵包含 $N$ 个顶点的有根树 $T$,顶点编号为顶点 $1$、顶点 $2$、$\ldots$、顶点 $N$。
顶点 $1$ 是树 $T$ 的根,对于每个顶点 $i$($2 \leq i \leq N$),其(直接)父节点为 $P_i$。

此外,顶点 $i$($1 \leq i \leq N$)上放置了 $C_i$ 颗糖果。所有 $(C_1 + C_2 + \cdots + C_N)$ 颗糖果彼此互不相同。

高桥向 $N$ 只松鼠下达了指令。具体而言,他向第 $i$ 只松鼠($1 \leq i \leq N$)下达如下指令:

* 从以顶点 $i$ 为根的子树中选择并收集 $D_i$ 颗糖果。

不同松鼠不能取走同一颗糖果。
请输出满足要求的糖果选取方案总数对 $998244353$ 取模的结果。

注意:即使最终被选中的糖果集合完全相同,只要选取这些糖果的松鼠不同,则视为不同的方案。
若无法让所有松鼠均按指令取回糖果,则输出 $0$。

输入格式

输入从标准输入中按以下格式给出:

> $N$
> $P_2$ $P_3$ $\ldots$ $P_N$
> $C_1$ $C_2$ $\ldots$ $C_N$
> $D_1$ $D_2$ $\ldots$ $D_N$

输出格式

输出选择糖果的可能方案数,对 $998244353$ 取模。

输入输出样例

输入 #1
5
1 1 3 3
1 2 1 2 3
1 1 3 1 1
输出 #1
144
输入 #2
2
1
1 1
2 1
输出 #2
0
输入 #3
3
3 1
1000000000 1 1
1 1 1
输出 #3
1755647
C++ 编辑器
输入
输出