题意
做法
考虑((n-1)!)种边集排列,每条边又等概率分为两种情况,我们算((n-1)!)的总概率,然后(/(n-1)!)
考虑算(rtin[1,n])的方案,将(rt)置于根
令(f_{i,j})为i变成rt时,子树还剩(j)条边,最后这棵子树变为一个(rt)点的方案数。
考虑(u)遍历时当前这棵子树(子树是一棵棵加进来的)
考虑将(dp_v)数组合并到(dp_u)的过程中
[egin{aligned}
dp'_{u,j+k}+=dp_{u,j} imes (j,k) imes (size_v-k,size_u-1-j) imes (dp_{v,k}cdot (size_v-k)+frac{1}{2}cdot sumlimits_{i=0}^{k-1}dp_{v,i})\
(为方便理解,令(x,y)={x+ychoose x},即序列有序合并)
end{aligned}]
解释一下:
考虑在(u)成为(rt)时,(u)当前子树还有(j)条边,(v)子树还有(k)条边,枚举(v)子树(包括((u,v)))还要再内部缩多少条边。
若一条边都不要缩,即在(u)成为(rt)前,((u,v))就已经合并过了。在计算(dp_v)时是没有考虑((u,v))这条边,则在((size_v-k))长度的序列中要选择((u,v))的位置。
否则,枚举内部缩((u,v))时,(v)内还剩(i)条边,而强制选择(frac{1}{2})的概率使得点为(rt)。
(O(n^4))