#P15474. 端点回收

    ID: 14689 传统题 1000ms 256MiB 尝试: 3 已通过: 1 难度: 8 上传者: 标签>CF2400树形DP动态规划组合数学计数DP

端点回收

地面上有 nn 个装置,编号为 11nn。它们由 n1n-1 条连杆连接,每条连杆长度均为 11,并且任意两个装置之间都能通过连杆互相到达。也就是说,这些装置构成一棵树。

现在需要按某种顺序将所有装置逐个回收。每次只能回收一个装置,并且必须遵守下面的规则:

  • 在当前还没有被回收的装置构成的树中,选择两个装置 (u,v)(u,v),允许 u=vu=v。它们需要满足:不存在另外两个装置 (a,b)(a,b),使得 dis(a,b)>dis(u,v)dis(a,b)>dis(u,v)。其中 dis(x,y)dis(x,y) 表示装置 xx 到装置 yy 的最短路径长度。
  • uuvv 中任选一个装置回收。

换句话说,每一步都要先选出当前树的一条直径,然后删除这条直径的某一个端点。可以证明,经过 nn 次操作后,所有装置都会被回收。

请计算一共有多少种不同的回收顺序。

两种回收方案被认为不同,当且仅当存在某个整数 ii,使得两种方案中第 ii 次回收的装置编号不同。

输入格式

第一行一个整数 nn,表示装置数量。

接下来 n1n-1 行,每行两个整数 ui,viu_i,v_i,表示编号为 uiu_iviv_i 的装置之间有一条连杆。

输出格式

输出一行一个整数,表示不同回收顺序数量对 109+710^9+7 取模后的结果。

样例 1 输入

5
1 2
2 3
3 4
4 5

样例 1 输出

16

样例 2 输入

5
1 2
1 3
3 4
3 5

样例 2 输出

28

样例 3 输入

10
1 2
1 3
2 4
3 5
3 6
3 7
5 8
6 9
7 10

样例 3 输出

9000

样例 4

见选手目录下 stone/ex_stone4.instone/ex_stone4.out

该样例满足 n20n\leq 20

样例 5

见选手目录下 stone/ex_stone5.instone/ex_stone5.out

该样例满足特殊性质 A。

样例 6

见选手目录下 stone/ex_stone6.instone/ex_stone6.out

该样例满足特殊性质 B。

数据范围

保证对于所有数据满足 n300n\leq 3001ui,vin1\leq u_i,v_i\leq n

测试点编号 nn\leq 特殊性质
121-2 88
343-4 2020
575-7 5050
8108-10 100100
111311-13 200200 A
141614-16 B
172017-20 300300

特殊性质 A:度数等于 11 的节点恰好有 33 个。

特殊性质 B:满足除了 11 号节点,所有点度数 2\leq 2,且度数为 11 的点到 11 号节点的距离都相等。