#agc024d. [agc024_d]Isomorphism Freak
[agc024_d]Isomorphism Freak
题目描述
对于一棵树 的顶点的着色被称为 好的着色,当且仅当对于每一对着相同颜色的两个顶点 和 ,以 为根节点和以 为根节点得到的结果是同构的树。
此外,树 的_着色度_被定义为好的着色中使用的不同颜色的最小数量。
给定一棵有 个顶点的树。顶点从 到 编号,第 条边连接顶点 和顶点 。我们通过在该树上重复以下操作若干次来构建一棵新树 :
- 在树上的某个顶点上添加一个新顶点,并用一条边将其与当前树上的一个顶点连接起来。
求 的最小可能着色度。另外,输出达到最小着色度的树 中叶子节点(度数为 的顶点)的最小数量。
注意事项
一棵树 的着色满足"以 为根节点和以 为根节点得到的结果是同构的树"意味着存在一个双射函数 ,将树 的顶点集映射到自身,满足以下两个条件:
- 对于任意一对顶点 ,当且仅当边 存在时,边 存在。
约束条件
- ()
- 给定的图是一棵树。
输入格式
从标准输入读入数据,格式如下:
输出格式
用一个空格分隔打印两个整数。首先,打印可以构建的树 的最小可能着色度。其次,打印实现最小着色度的树中叶子节点的最小数量。
根据题目约束条件,所需的输出值都可以用 64 位有符号整数表示。
示例输入 1
5
1 2
2 3
3 4
3 5
示例输出 1
2 4
如果我们将一个新的顶点 与顶点 相连,将顶点 涂为红色,将顶点 涂为蓝色,这是一个好的着色。由于将所有顶点涂成同一种颜色不是好的着色,可以看出这棵树的着色度是 。这实际上是最优解。叶子节点有四个,因此我们应该打印 和 。
示例输入 2
8
1 2
2 3
4 3
5 4
6 7
6 8
3 6
示例输出 2
3 4
示例输入 3
10
1 2
2 3
3 4
4 5
5 6
6 7
3 8
5 9
3 10
示例输出 3
4 6
示例输入 4
13
5 6
6 4
2 8
4 7
8 9
3 2
10 4
11 10
2 4
13 10
1 8
12 1
示例输出 4
4 12