#ATarc087d. [ARC087F] Squirrel Migration

[ARC087F] Squirrel Migration

题目描述

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

每个顶点上住着一只松鼠。松鼠们决定搬家,搬家的方案如下:首先任选一个 11NN 的排列 p=(p1,p2,,pN)p = (p_1, p_2, \dots, 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) + \cdots + d(N,p_N) 最大。求能够达到这个最大总距离的排列 pp 的方案数,结果对 109+710^9+7 取模。

输入格式

输入通过标准输入给出,格式如下:

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

输出格式

输出满足条件的排列 pp 的方案数,对 109+710^9+7 取模。

样例 1

输入

3
1 2
2 3

输出

3

样例 2

输入

4
1 2
1 3
1 4

输出

11

样例 3

输入

6
1 2
1 3
1 4
2 5
2 6

输出

36

样例 4

输入

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

输出

396

说明/提示

限制

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

样例解释 1

所有松鼠的移动距离之和的最大值是 44。满足条件的排列 pp 有以下 33 种:

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

样例解释 2

所有松鼠的移动距离之和的最大值是 66。例如 p=(2,1,4,3)p = (2, 1, 4, 3) 满足条件。

由 ChatGPT 5 翻译