AT_abc459_e.Select from Subtrees

普及+/提高

通过率:0%

时间限制:2.00s

内存限制:1024MB

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一棵包含 NN 个顶点的有根树 TT,顶点编号为顶点 11、顶点 22\ldots、顶点 NN
顶点 11 是树 TT 的根,对于每个顶点 ii2iN2 \leq i \leq N),其(直接)父节点为 PiP_i

此外,顶点 ii1iN1 \leq i \leq N)上放置了 CiC_i 颗糖果。所有 (C1+C2++CN)(C_1 + C_2 + \cdots + C_N) 颗糖果彼此互不相同。

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

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

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

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

输入格式

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

NN
P2P_2 P3P_3 \ldots PNP_N
C1C_1 C2C_2 \ldots CNC_N
D1D_1 D2D_2 \ldots DND_N

输出格式

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

输入输出样例

  • 输入#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

说明/提示

样例 1 解释:
我们将糖果编号,使得顶点 11 上有糖果 11,顶点 22 上有糖果 2,32, 3,顶点 33 上有糖果 44,顶点 44 上有糖果 5,65, 6,顶点 55 上有糖果 7,8,97, 8, 9

一种可行的选糖方式如下:

  • 松鼠 11 从以顶点 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

注意,以下方式被视为另一种不同的方案:

  • 松鼠 11 从以顶点 11 为根的子树(包含顶点 1,2,3,4,51, 2, 3, 4, 5)中收集糖果 2\mathbf{2}
  • 松鼠 22 从以顶点 22 为根的子树(仅含顶点 22)中收集糖果 3\mathbf{3}
  • 松鼠 33 从以顶点 33 为根的子树(包含顶点 3,4,53, 4, 5)中收集糖果 4,7,94, 7, 9
  • 松鼠 44 从以顶点 44 为根的子树(仅含顶点 44)中收集糖果 66
  • 松鼠 55 从以顶点 55 为根的子树(仅含顶点 55)中收集糖果 88

总共有 144144 种合法方案,因此输出 144144998244353998244353 取模的结果,即 144144

样例 2 解释:
该树仅在顶点 1122 上共分布两颗糖果,因此无法按题目要求让两只松鼠均成功收集糖果。
故输出 00

样例 3 解释:
请注意,需输出方案数对 998244353998244353 取模的结果。

约束条件

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