已结束 【提高组】GESP“飞翔杯”第一届季度赛

A4676 | 画图

来源官方 / 2024
时间限制1s
内存限制512MB
通过 / 提交0/0

题目描述

时间限制:1S

空间限制:512mb

样例文件:Draw


小 N 有一棵 $n$ 个结点的无根树,现在他想将原树通过一种新的方式画下来。

他的画图操作可以看成是对一个树上连通块生成一棵有根树:

1. 选择连通块的一个结点 $r$ 作为有根树的根,然后将结点 $r$ 删除,令有 $k$ 个结点,$p_1,p_2,\cdots,p_k$ 与结点 $r$ 有边,得到包含结点 $p_i$ 的第 $i$ 个连通块;
2. 对第 $i\in[1,k]\cap \mathbb{Z}$ 个连通块进行画图操作,并将结点 $r$ 与第 $i$ 个连通块操作后的有根树根结点连边。这样就得到了一个新的有根树。

由此,小 N 对整棵树按照上述过程得到一个 $n$ 个结点的有根树。现在,小 N 想知道有多少种本质不同的有根树,对 $10^9+7$ 取模。

两棵有根树本质不同,当且仅当根不同,或者存在一个点的父亲不同。

输入格式

第一行一个正整数 $n$ 表示树的点数。

接下来 $n - 1$ 行,第 $i$ 行包含两个整数 $u_i, v_i$,表示树上编号为 $i$ 的边连接结点 $u_i$ 和 $v_i$。

输出格式

一行一个整数,表示答案对 $10^9+7$ 取模后的值。

输入输出样例

输入 #1
3
1 2
2 3
输出 #1
5
输入 #2
6
1 2
2 3
2 4
1 5
4 6
输出 #2
176
输入 #3
见选手目录下的 $\texttt{draw/draw3.in}$ 与 $\texttt{draw/draw3.ans}$。

该组样例满足数据范围中描述的测试点 $1$ 的限制。
输出 #3

                            
输入 #4
见选手目录下的 $\texttt{draw/draw4.in}$ 与 $\texttt{draw/draw4.ans}$。

该组样例满足数据范围中描述的测试点 $11$ 的限制。
输出 #4

                            
输入 #5
见选手目录下的 $\texttt{draw/draw5.in}$ 与 $\texttt{draw/draw5.ans}$。

该组样例满足数据范围中描述的测试点 $13$ 的限制。
输出 #5

                            
输入 #6
见选手目录下的 $\texttt{draw/draw6.in}$ 与 $\texttt{draw/draw6.ans}$。

该组样例满足数据范围中描述的测试点 $25$ 的限制。
输出 #6

                            
C++ 编辑器
输入
输出