#arc087d. [arc087_d]Squirrel Migration

[arc087_d]Squirrel Migration

题目描述

有一棵 NN 个顶点的树。顶点编号为 11NN。第 ii 条边(1iN11 \leq i \leq N - 1)连接顶点 xix_iyiy_i。对于顶点 vvww1v,wN1 \leq v, w \leq N),我们定义顶点 vvww 之间的距离 d(v,w)d(v, w) 为 "路径上所包含的边的数量"。

每个顶点中都有一只松鼠。它们计划按照以下方式移动。首先,它们将自由选择一个排列 (1,2,...,N)(1, 2, ..., N),即 p=(p1,p2,...,pN)p = (p_1, p_2, ..., p_N)。然后,对于每个 1iN1 \leq i \leq N,居住在顶点 ii 的松鼠将移动到顶点 pip_i

由于它们喜欢长途旅行,它们决定在此过程中最大化它们的总旅行距离。也就是说,它们将选择 pp,使得 d(1,p1)+d(2,p2)+...+d(N,pN)d(1, p_1) + d(2, p_2) + ... + d(N, p_N) 最大化。有多少种满足条件的选择 pp,取模 109+710^9 + 7

约束条件

  • 2N5,0002 \leq N \leq 5,000
  • 1xi,yiN1 \leq x_i, y_i \leq N
  • 输入树是一棵树。

输入

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

NN x1x_1 y1y_1 x2x_2 y2y_2 :: xN1x_{N - 1} yN1y_{N - 1}

输出

输出满足条件的选择 pp 的数量,取模 109+710^9 + 7


示例输入1

3
1 2
2 3

示例输出1

3

松鼠可以最大行进距离为 44。有三种满足条件的选择 pp,如下所示:

  • (2,3,1)(2, 3, 1)
  • (3,1,2)(3, 1, 2)
  • (3,2,1)(3, 2, 1)

示例输入2

4
1 2
1 3
1 4

示例输出2

11

松鼠可以最大行进距离为 66。例如,p=(2,1,4,3)p = (2, 1, 4, 3) 可以实现。


示例输入3

6
1 2
1 3
1 4
2 5
2 6

示例输出3

36

示例输入4

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

示例输出4

396