CFCF2164F1.Chain Prefix Rank (Easy Version)
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是该问题的简单版本。不同版本的区别在于本版本中 n≤5000。只有在你完成所有版本后才能进行 hack。
给定一棵有 n 个结点、以 1 为根的树 T 以及一个长度为 n 的序列 a,请计算满足下列条件的排列 ∗ p 的个数:
- 对于所有 1≤u≤n,恰好有 au 个结点 v 是 u 在树 T 中的祖先,并且 pv<pu。
请输出答案对 998244353 取模的结果。保证输入数据至少存在一个合法排列。
∗ 长度为 n 的排列指由 1 至 n 的 n 个不同整数任意排列组成的数组。例如,[2,3,1,5,4] 是一个排列,但 [1,2,2] 不是排列(2 在数组中出现了两次),[1,3,4] 也不是排列(n=3 但数组中出现了 4)。
输入格式
每组测试包含多个测试用例。第一行包含测试用例数 t(1≤t≤2500)。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 n(2≤n≤5000)——结点数。
每个测试用例的第二行包含 n−1 个整数 fa2,fa3,…,fan(1≤fai<i),表示 i 在树 T 中的父亲编号。
每个测试用例的第三行包含 n 个整数 a1,a2,…,an(0≤ai<n)。
保证所有测试用例的 n 之和不超过 5000。输入数据保证至少存在一个合法排列。
输出格式
对于每个测试用例,输出一个整数,表示满足条件的排列数量,对 998244353 取模。
输入输出样例
输入#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]。
在第二个样例中,满足条件的排列有 [4,5,1,2,3]、[4,5,1,3,2]、[4,5,2,1,3]、[4,5,2,3,1]、[4,5,3,1,2]、[4,5,3,2,1]。
在第三个样例中,满足条件的排列有 [3,1,6,2,5,7,8,4]、[3,1,6,2,5,8,7,4]、[3,2,6,1,5,7,8,4]、[3,2,6,1,5,8,7,4]。