CFCF2164F1.Chain Prefix Rank (Easy Version)

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

这是该问题的简单版本。不同版本的区别在于本版本中 n5000n \leq 5000。只有在你完成所有版本后才能进行 hack。

给定一棵有 nn 个结点、以 11 为根的树 TT 以及一个长度为 nn 的序列 aa,请计算满足下列条件的排列 ^{\text{∗}} pp 的个数:

  • 对于所有 1un1 \leq u \leq n,恰好有 aua_u 个结点 vvuu 在树 TT 中的祖先,并且 pv<pup_v < p_u

请输出答案对 998244353998\,244\,353 取模的结果。保证输入数据至少存在一个合法排列。

^{\text{∗}} 长度为 nn 的排列指由 11nnnn 个不同整数任意排列组成的数组。例如,[2,3,1,5,4][2,3,1,5,4] 是一个排列,但 [1,2,2][1,2,2] 不是排列(22 在数组中出现了两次),[1,3,4][1,3,4] 也不是排列(n=3n=3 但数组中出现了 44)。

输入格式

每组测试包含多个测试用例。第一行包含测试用例数 tt1t25001 \leq t \leq 2500)。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn2n50002 \leq n \leq 5000)——结点数。

每个测试用例的第二行包含 n1n-1 个整数 fa2,fa3,,fanfa_2, fa_3, \ldots, fa_n1fai<i1 \leq fa_i < i),表示 ii 在树 TT 中的父亲编号。

每个测试用例的第三行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n0ai<n0 \leq a_i < n)。

保证所有测试用例的 nn 之和不超过 50005000。输入数据保证至少存在一个合法排列。

输出格式

对于每个测试用例,输出一个整数,表示满足条件的排列数量,对 998244353998\,244\,353 取模。

输入输出样例

  • 输入#1

    3
    5
    1 2 3 4
    0 1 2 3 4
    5
    1 2 1 1
    0 1 0 0 0
    8
    1 1 3 3 4 5 7
    0 0 1 0 1 3 3 1

    输出#1

    1
    6
    4

说明/提示

可视化链接

在第一个样例中,唯一满足条件的排列是 [1,2,3,4,5][1,2,3,4,5]

在第二个样例中,满足条件的排列有 [4,5,1,2,3][4,5,1,2,3][4,5,1,3,2][4,5,1,3,2][4,5,2,1,3][4,5,2,1,3][4,5,2,3,1][4,5,2,3,1][4,5,3,1,2][4,5,3,1,2][4,5,3,2,1][4,5,3,2,1]

在第三个样例中,满足条件的排列有 [3,1,6,2,5,7,8,4][3,1,6,2,5,7,8,4][3,1,6,2,5,8,7,4][3,1,6,2,5,8,7,4][3,2,6,1,5,7,8,4][3,2,6,1,5,7,8,4][3,2,6,1,5,8,7,4][3,2,6,1,5,8,7,4]

首页