#ATarc183e. [ARC183E] Ascendant Descendant
[ARC183E] Ascendant Descendant
题目描述
有一棵包含编号为 到 的 个顶点的根树,根是顶点 ,对于每个顶点 (),其父节点是顶点 ()。
同时,给定两个长度为 的整数序列 和 ,其元素均为 到 之间的整数。
定义序列 是 good 的,当且仅当对每个 ,顶点 是顶点 的祖先,或者 。
初始时,序列 是 good 的。
我们考虑对序列 进行以下操作:
- 选择一个整数 (),交换 和 的值。操作后,序列 仍必须是 good 的。
请计算,经过 次或多次操作后,可能得到的不同序列的个数,并输出该结果对 取模的值。
输入格式
输入通过标准输入给出,格式如下:
输出格式
输出可能得到的不同序列的个数,对 取模。
样例 1
输入
3 3
1 2
1 2 1
1 2 3
输出
2
样例 2
输入
4 3
1 1 1
2 3 4
2 3 4
输出
1
样例 3
输入
8 13
1 2 2 3 4 4 3
5 3 2 5 4 6 2 8 2 6 7 4 7
5 5 8 5 6 6 5 8 3 6 7 4 7
输出
8
样例 4
输入
30 27
1 2 1 1 5 1 7 1 5 10 1 12 12 13 15 16 12 18 19 18 21 21 23 13 18 18 27 27 13
1 18 1 5 11 12 1 1 1 12 1 12 1 15 1 1 21 1 12 10 2 8 3 1 1 30 12
14 27 30 5 11 17 1 18 24 27 29 27 19 15 28 5 21 21 29 11 2 8 3 4 10 30 22
输出
60
说明/提示
- 对于每个 ,顶点 是顶点 的祖先,或者
样例解释
考虑选择 进行操作,操作后序列 不是 good 的,因此该操作不可行。
再考虑选择 进行操作,操作后序列 是 good 的,因此该操作可行。
可能得到的不同序列有 和 ,因此答案是 。
Translate by 宋怡芃