P9536 [YsOI2023] Prüfer 序列
题目背景
Ysuperman 模板测试的计数题。
众所周知,Prüfer 序列几乎没有在正赛中出现过,所以它需要出现在洛谷月赛中。
题目描述
众所周知,一棵 $n$ 个点的有标号无根树与他的 Prüfer 序列一一对应。如果你不知道 Prüfer 序列指的是什么,可以参考下面提示说明中对 Prüfer 序列的解释。
现在给你一个长度为 $m$ 的正整数序列 $a$,其中 $a_i\in[1,n]$。等概率随机选择这个序列的一个长度为 $n-2$ 的子序列(只要选择下标不同就认为两个子序列不同)作为 Prüfer 序列构造得到一棵树 $T$,对于所有 $1\le i
输入格式
输入第一行两个正整数 $n,m$。
第二行 $m$ 个整数表示序列 $a$,保证 $1\le a_i\le n$。
输出格式
输出 $n-1$ 个非负整数,第 $i$ 个整数表示 $\mathrm{dist}(i,n)$ 的期望。
说明/提示
#### 对 Prüfer 序列的解释
对于一棵给定的无根有标号树,Prüfer 序列的构建过程如下:每次选择一个编号最小的叶结点并删掉它,然后在序列中记录下它连接到的那个结点,重复 $n-2$ 次后就只剩下两个结点,此时记录下来的那个序列就是这棵无根有标号树的 Prüfer 序列。
我们可以证明,一棵结点数量大于 $1$ 的无根有标号树和一个 Prüfer 序列是一一对应的,并且任意一个长度为 $n-2$ 每个数取 $[1,n]$ 范围内的整数的 Prüfer 序列都有唯一对应它的树,所以同样的,我们也可以根据一个 Prüfer 序列还原出一棵树。
有关 Prüfer 序列更加详细的内容,你可以参考 [OI wiki 上关于 Prüfer 序列的描述](https://oi-wiki.org/graph/prufer/)。
#### 样例 1 解释
共有三种等可能选择的子序列:$2,4$,$2,3$,$4,3$。
1. $2,4$ 对应的树为一条链 $1-2-4-3$,其中 $1,2,3$ 与 $4$ 的距离分别为 $2,1,1$。
2. $2,3$ 对应的树为一条链 $1-2-3-4$,其中 $1,2,3$ 与 $4$ 的距离分别为 $3,2,1$。
3. $4,3$ 对应的树为一条链 $1-4-3-2$,其中 $1,2,3$ 与 $4$ 的距离分别为 $1,2,1$。
所以 $\mathrm{dist}(1,4)$ 期望为 $(2+3+1)/3=2$,$\mathrm{dist}(2,4)$ 期望为 $(1+2+2)/3=5/3\equiv 666666673\pmod{10^9+7}$,$\mathrm{dist}(3,4)$ 期望为 $(1+1+1)/3=1$。
#### 样例 2 解释
仅有一种可能的子序列 $4,6,5,2$,对应的树为一条链 $1-4-5-2-6-3$,$1,2,3,4,5$ 与 $6$ 的距离依次为 $4,1,1,3,2$,即为答案。
#### 数据范围
本题共 $20$ 个测试点:
|测试点编号|$n$|$m$|
|:-:|:-:|:-:|
|$1$|$=4$|$=6$|
|$2$|$=8$|$=15$|
|$3$|$=10$|$=20$|
|$4$|$=10$|$=50$|
|$5$|$=10$|$=200$|
|$6$|$=10$|$=1000$|
|$7$|$=10$|$=1750$|
|$8$|$=10$|$=2500$|
|$9$|$=11$|$=500$|
|$10$|$=11$|$=1000$|
|$11$|$=12$|$=250$|
|$12$|$=12$|$=375$|
|$13$|$=12$|$=400$|
|$14$|$=13$|$=80$|
|$15$|$=13$|$=120$|
|$16$|$=13$|$=160$|
|$17$|$=13$|$=200$|
|$18$|$=14$|$=60$|
|$19$|$=14$|$=90$|
|$20$|$=15$|$=40$|
另外,对于所有数据,保证 $1\le a_i\le n$。
**请注意,前 $19$ 个测试点空间限制为 $512\rm{MB}$,最后一个点空间限制为 $150\rm{MB}$。**