#agc024d. [agc024_d]Isomorphism Freak

[agc024_d]Isomorphism Freak

题目描述

对于一棵树 GG 的顶点的着色被称为 好的着色,当且仅当对于每一对着相同颜色的两个顶点 uuvv,以 uu 为根节点和以 vv 为根节点得到的结果是同构的树。

此外,树 GG 的_着色度_被定义为好的着色中使用的不同颜色的最小数量。

给定一棵有 NN 个顶点的树。顶点从 11NN 编号,第 ii 条边连接顶点 aia_i 和顶点 bib_i。我们通过在该树上重复以下操作若干次来构建一棵新树 TT

  • 在树上的某个顶点上添加一个新顶点,并用一条边将其与当前树上的一个顶点连接起来。

TT 的最小可能着色度。另外,输出达到最小着色度的树 TT 中叶子节点(度数为 11 的顶点)的最小数量。

注意事项

一棵树 GG 的着色满足"以 uu 为根节点和以 vv 为根节点得到的结果是同构的树"意味着存在一个双射函数 fuvf_{uv},将树 GG 的顶点集映射到自身,满足以下两个条件:

  • fuv(u)=vf_{uv}(u)=v
  • 对于任意一对顶点 (a,b)(a,b),当且仅当边 (a,b)(a,b) 存在时,边 (fuv(a),fuv(b))(f_{uv}(a),f_{uv}(b)) 存在。

约束条件

  • 2N1002 \leq N \leq 100
  • 1ai,biN1 \leq a_i,b_i \leq N1iN11 \leq i \leq N-1
  • 给定的图是一棵树。

输入格式

从标准输入读入数据,格式如下:

NN a1a_1 b1b_1 :: aN1a_{N-1} bN1b_{N-1}

输出格式

用一个空格分隔打印两个整数。首先,打印可以构建的树 TT 的最小可能着色度。其次,打印实现最小着色度的树中叶子节点的最小数量。

根据题目约束条件,所需的输出值都可以用 64 位有符号整数表示。


示例输入 1

5
1 2
2 3
3 4
3 5

示例输出 1

2 4

如果我们将一个新的顶点 66 与顶点 22 相连,将顶点 (1,4,5,6)(1,4,5,6) 涂为红色,将顶点 (2,3)(2,3) 涂为蓝色,这是一个好的着色。由于将所有顶点涂成同一种颜色不是好的着色,可以看出这棵树的着色度是 22。这实际上是最优解。叶子节点有四个,因此我们应该打印 2244


示例输入 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