#P16135. [ICPC 2018 NAIPC] Red Black Tree
[ICPC 2018 NAIPC] Red Black Tree
题目描述
You are given a rooted tree with nodes. The nodes are numbered . The root is node 1, and of the nodes are colored red, the rest are black.
You would like to choose a subset of nodes such that there is no node in your subset which is an ancestor of any other node in your subset. For example, if A is the parent of B and B is the parent of C, then you could have at most one of A, B or C in your subset. In addition, you would like exactly of your chosen nodes to be red.
If exactly of the nodes are red, then for all , figure out how many ways you can choose subsets with red nodes, and no node is an ancestor of any other node.
输入格式
Each input will consist of a single test case. Note that your program may be run multiple times on different inputs. Each test case will begin with a line with two integers () and (), where is the number of nodes in the tree, and is the number of nodes which are red. The nodes are numbered .
Each of the next lines will contain a single integer (), which is the number of the parent of this node. The nodes are listed in order, starting with node 2, then node 3, and so on. Node 1 is skipped, since it is the root. It is guaranteed that the nodes form a single tree, with a single root at node 1 and no cycles.
Each of the next lines will contain single integer (). These are the numbers of the red nodes. No value of will be repeated.
输出格式
Output lines, corresponding to the number of subsets satisfying the given criteria with a number of red nodes equal to , in that order. Output this number modulo .
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