#P650. 树的覆盖
树的覆盖
题目描述
给定一棵有 个结点的树, 号点为这棵树的根。请计算,这个棵树的最小覆盖集大小,并统计有多少最小覆盖集。
所谓覆盖集,是该树的点构成的集合,对树上每一条边,至少有一个顶点属于该集合。某个特定覆盖集的大小就是该集合中点的数量。
由于覆盖集数量可能很大,输出数量数模 的余数即可。
输入格式
- 第一行:单个整数表示 ;
- 第二行: 个整数表示 到 , 表示 号点父亲的编号,保证有 。
输出格式
- 第一行:单个整数:表示最小覆盖集的大小。
- 第二行:单个整数:表示最小覆盖集的数量模 的余数。
4
1 2 3
2
3
样例解释 1
最小覆盖集为{1 3}、{2 4}、{2 3}
6
1 1 1 2 3
3
5
样例解释 2
{1 2 3} {1 5 3} {1 2 6} {1 5 6} {2 3 4}
数据范围
- 对于 的数据, ;
- 对于 的数据, ;
- 对于 的数据, 。