#CF2141I. 给树染色
给树染色
I. 给树染色
时间限制: 每测试 秒
内存限制: 每测试 兆字节
给定一棵由 个顶点组成的树。初始时,树的所有顶点均未被染色。
你可以执行以下操作:选择任意两个顶点 和 (允许 ),并用颜色 为它们之间路径上的所有顶点(包括端点)染色,其中 是当前执行操作的序号(即第一次操作使用颜色 ,第二次使用颜色 ,依此类推)。如果路径上的任何顶点之前已经被染色,其颜色将变为新的颜色。
我们称树的染色是完全的,当且仅当每个顶点至少被一次操作染色过。
你的任务是计算两个值:
- 实现完全染色所需的最少操作次数;
- 使用最少操作次数可以获得的不同完全染色方案的数量(两种染色方案被认为是不同的,如果存在至少一个顶点 ,使得该顶点在第一种染色方案中的颜色与第二种染色方案中的颜色不同)。
输入格式
第一行包含一个整数 — 树中顶点的数量。
接下来 行,每行包含两个整数 和 — 树的一条边的端点。
输入的额外约束:这些边构成一棵具有 个顶点的有效树。
输出格式
输出两个整数 — 最少操作次数,以及使用最少操作次数可以获得的不同完全染色方案的数量。由于第二个数字可能非常大,请输出其对 取模的结果。
样例
输入
3
1 2
2 3
输出
1 1
输入
5
1 3
2 1
5 1
1 4
输出
2 6
输入
4
1 4
2 4
4 3
输出
2 9
输入
5
4 2
1 5
3 4
4 1
输出
2 11
输入
10
7 9
9 3
4 2
8 7
7 10
8 5
4 1
8 2
6 8
输出
3 270