#P4582. [FJOI2014] 树的重心

[FJOI2014] 树的重心

题目描述

给定一个 nn 个点的树,每个点的编号从 1n1 \sim n ,问这个树有多少不同的连通子树,和这个树有相同的重心。

其中 nn 个点的树指的是 nn 个点的最小连通图,显然 nn 个点的树有 n1n-1 条边,去掉这 n1n-1 条边中的任何一条,原图都不再联通,任意两个点之间由唯一一条路径相连。

对于一个树,树的重心定义为:删掉某点 ii 后,若剩余 kk 个连通分量,那么定义 d(i)d(i) 为这些连通分量中点的个数的最大值,所谓重心,就是使得 d(i)d(i) 最小的点 ii

基于以上定义,一个树的重心可能会有一个或者两个,题中所要求的联通子树,其重心编号和个数必须和原树的完全一样。

找出给定的树中有多少联通的子树和这个树有相同的重心。输出答案 mod10007\bmod 10007 后的结果。

输入格式

11 行中给出正整数 QQ,表示该组数据中有多少组测试样例。

每组样例首先输入一个整数 nn0<n2000 < n \le 200),表示该组样例中输入的树包含 nn 个点,之后 n1n-1 行,每行输入两整数数 x,yx,y1x,yn1 \le x,y \le n),表示编号为 xx 的点和编号为 yy 的点之间存在一条边,所有点的编号从 1n1 \sim n

输出格式

首先输出样例编号,之后输出满足条件的子树的个数,由于这个数字较大,你只需要输出这个数字 mod 10007\bmod\ 10007 后的结果,详见输出示例,请严格按照输出实例中的格式输出。

3
2
1 2
3
1 2
2 3
5
1 2
1 3
2 4
2 5
Case 1: 1
Case 2: 2
Case 3: 6

提示

对于 100%100 \% 的数据,满足 1Q50,1n2001 \le Q \le 50, 1 \le n \le 200