#P16135. [ICPC 2018 NAIPC] Red Black Tree
[ICPC 2018 NAIPC] Red Black Tree
题目描述
给定一棵有根树,包含 个节点,节点编号为 。根节点为 1。其中 个节点被染成红色,其余节点为黑色。
你需要选择一个节点子集,使得子集中不存在某个节点是另一个节点的祖先。例如,如果 A 是 B 的父节点,B 是 C 的父节点,那么 A、B、C 中最多只能有一个被选入子集。此外,你希望所选子集中恰好包含 个红色节点。
已知恰好有 个红色节点,请对于 的每个取值,计算出满足上述条件且恰好包含 个红色节点的子集数量。
输入格式
每个输入包含单个测试用例。请注意,你的程序可能会在不同输入上多次运行。每个测试用例的第一行包含两个整数 ()和 (),其中 是树中的节点数, 是红色节点的数量。节点编号为 。
接下来的 行,每行包含一个整数 (),表示该节点的父节点编号。节点按顺序给出,从节点 2 开始,然后是节点 3,依此类推。节点 1 是根节点,因此被跳过。保证这些节点构成一棵以节点 1 为根的无环树。
接下来的 行,每行包含一个整数 ()。这些是红色节点的编号。所有 的值互不相同。
输出格式
输出 行,分别对应 时满足条件的子集数量。按顺序输出这些数字,并对 取模。
4 1
1
1
1
3
5
4
4 4
1
1
1
1
2
3
4
1
4
3
1
0
14 4
1
2
1
2
3
4
5
5
13
8
10
4
4
8
3
12
13
100
169
90
16
0
提示
翻译由 DeepSeek V3.2 完成