#abc264h. [abc264_h]Perfect Binary Tree
[abc264_h]Perfect Binary Tree
题目描述
我们有一个有根树,其中的顶点编号为。
该树以顶点为根,顶点的父节点是顶点。
对于每个整数,求解以下问题:
选择位于和之间编号的一些顶点,使得顶点被选择的方式有种。
有多少种方式满足以下条件:由选定顶点集合形成的子图是以顶点为根的完全二叉树(其中是正整数,对应该完全二叉树的顶点数为)?
由于计数可能非常大,将结果对取模后输出。
什么是诱导子图?
设是图的顶点集的子集。由该顶点集诱导出的子图的构造如下:
-
的顶点集等于。
-
然后,我们按照以下方式向添加边:
-
对于在中的所有顶点对,满足,如果中存在连接和的边,则将顶点和之间添加一条边到中。
什么是完全二叉树?完全二叉树是满足以下条件的有根树:
- 非叶节点每个都恰好有个孩子。
- 所有叶节点到根的距离相等。
在这里,我们还将只有个顶点和条边的图视为完全二叉树。
约束条件
- 输入中的所有值都是整数。
输入
输入遵循以下格式,从标准输入中给出:
输出
输出 行。第 行()应包含当 时的整数答案。
示例输入 1
10
1 1 2 1 2 5 5 5 1
示例输出 1
1
1
2
2
4
4
4
5
7
10
应计数以下选择顶点的方式:
- 当 时,
- 当 时,
- 当 时,
- 当 时,
- 当 时,
- 当 时,
示例输入 2
1
示例输出 2
1
如果 ,则输入的第 行为空。
示例输入 3
10
1 2 3 4 5 6 7 8 9
示例输出 3
1
1
1
1
1
1
1
1
1
1
示例输入 4
13
1 1 1 2 2 2 3 3 3 4 4 4
示例输出 4
1
1
2
4
4
4
4
4
7
13
13
19
31