D. 连通子树与树的重心(tree)

    Type: Default File IO: tree 1000ms 256MiB

连通子树与树的重心(tree)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

nn 个点和 n1n-1 条边组成的连通图称为树。删除树中的任意一条边,原图将不再连通,树上任意两点之间由唯一的一条简单路径相连。

如果在树中选择某个节点并删除,这棵树将分为若干棵子树,统计子树节点数并记录最大值。取遍树上所有节点,使此最大值取到最小的节点被称为整个树的重心。

  • 这里以及下文中的「子树」若无特殊说明都是指无根树的子树,即包括「向上」的那棵子树,并且不包括整棵树自身。

显然,树的重心只有一个或者两个共两种可能,树的重心如果不唯一,则至多有两个,且这两个重心相邻。

现在,小 Z 有一棵 nn 个点的无根树,结点编号为 1,2,,n1,2,\cdots,n。小 Z 想知道,这棵树中有多少个不同的子树,使得子树和这棵树有相同的重心。

  • 这里的相同,要求子树的重心个数和重心编号都和原本的树相同。

由于数量可能很大,只需要输出答案 mod10007\bmod 10007 的结果。

输入格式

tree.in 文件读入数据。

第一行一个整数 nn,树的结点数量。

接下来有 n1n-1 行,每行输入两整数数 x,yx,y1x,yn1 \le x,y \le n),表示编号为 xx 的点和编号为 yy 的点之间存在一条边,所有点的编号从 1n1 \sim n

输出格式

输出到 tree.out 文件。

输出满足条件的子树的个数,由于这个数字较大,你只需要输出这个数字 mod 10007\bmod\ 10007 后的结果。

样例

2
1 2
1
3
1 2
2 3
2
5
1 2
1 3
2 4
2 5
6

样例4

此样例满足 n500n\le 500 数据范围限制。

点击链接 ex_tree4.inex_tree4.out 下载大样例 4 的输入数据和输出数据。

样例5

此样例满足 n5000n\le 5000 数据范围限制。

点击链接 ex_tree5.inex_tree5.out 下载大样例 5 的输入数据和输出数据。

说明/提示

对于 50%50 \% 的数据,满足 1n5001 \le n \le 500

对于 100%100 \% 的数据,满足 1n50001 \le n \le 5000

1021提高

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2024-10-21 13:30
End at
2024-10-21 17:30
Duration
4 hour(s)
Host
Partic.
14