题目描述
有一棵包含 N 个顶点的树,顶点编号为 0,1,…,N−1。宝藏等概率地藏在某一个顶点中。
每个顶点上都有一个探测器。使用顶点 v 上的探测器,可以得到 v 到宝藏所在顶点的树上距离。这里的距离指最短路径经过的边数。
你会把全部 N 个探测器按一个等概率随机的排列依次使用。当根据已经得到的所有距离信息能够唯一确定宝藏所在顶点时,你会立即停止。
树由数组 parent 描述。对于 i=1,2,…,N−1,顶点 i 与顶点 parenti−1 之间有一条边。
设使用探测器数量的期望为 X。可以证明 X⋅N⋅N! 一定是整数。请输出
X⋅N⋅N!(mod109+7)。
输入格式
第一行一个整数 m,表示 parent 数组的长度,因此 N=m+1。
若 m>0,第二行输入 m 个整数 parent0,parent1,…,parentm−1。
输出格式
输出一个整数,表示 X⋅N⋅N! 对 109+7 取模后的结果。
数据范围
- 1≤N≤50,即 0≤m≤49;
- 对所有 0≤i<m,有 0≤parenti≤i。
样例 1
1
0
4
样例 2
2
0 0
22