Cabinfever
作为一个忠实的绿神粉丝,绿神赐予了他树人王的称号。成为树人王的第一项工作是管理一批树苗。这些小树苗长得不太整齐,作为一个强迫症,Cabinfever
想对这些小树苗进行修剪,让他们的高度一样。
对小树苗作出如下定义:每棵小树苗都是一个有根树,它的高度定义为最高的叶子节点的高度。Cabinfever
可以剪断树枝,这样一棵小树苗就会变为两棵小树苗,如下图。
由于 Cabinfever
很懒,他想知道最少剪几次就可以使得所有小树苗高度相同,并且高度是多少。
注意:若一棵小树苗节点数为 $1$,则高度为 $0$。
第一行包含一个正整数 $T$,表示有 $T$ 组测试数据。
接下来依次给出每组测试数据。对于每组测试数据:
第一行包含一个正整数 $n$,表示最初小树苗的数量。
接下来依次给出每棵小树苗的描述。对于第 $i$ 棵小树苗:
第一行包含两个正整数 $s_i$ 和 $r_i$,分别表示第 $i$ 棵小树苗的节点数和根节点编号。
接下来 $(s_i - 1)$ 行,每行包含两个正整数 $u$ 和 $v$,表示编号为 $u$ 的节点和编号为 $v$ 的节点恰好有一根树枝相连。
保证 $1 \leq u, v \leq \sum_{i = 1}^{n}{s_i}$ 且每个节点恰好属于一棵小树苗。
保证所有数据满足 $1 \leq T \leq 12,$ $1 \leq n \leq 5000,$ $\displaystyle 1 \leq \sum_{i=1}^{n}{s_i} \leq 5000$。
保证约 $30\%$ 的数据满足 $1 \leq n \leq 5$。
对于每组数据,输出一行,包含两个整数,之间用恰好一个空格隔开,表示最少修剪次数和高度。如果对于最少修剪次数存在多种可能的高度,输出最高的高度。
1
2
5 1
1 2
1 3
2 4
4 5
2 6
6 7
1 1
第一棵小树苗的情况如题目描述中所示,只需要剪一刀就可以获得 $3$ 棵高度均为 $1$ 的小树苗。