$dp$ 计数.
只需要对于每个 $k$ ,算出从小到大加入第 $k$ 条边后图仍未连通的概率 $p_k$ ,则答案为 $\frac 1 {m+1}\sum_{i=1}^m p_k$ .
设 $cnt(S)$ 表示两端都在点集 $S$ 中的边的数目.
设 $f(S,i)$ 表示点集为 $i$ ,在点集中选了 $i$ 条边,使得这个点集不连通的方案数, $g(S,i)$ 表示连通的方案数.
显然有 $f(S,i)+g(S,i)={cnt(S)\choose i}$ .
计算 $f(S,i)$ 的做法相当经典,枚举 $S$ 中包含某个定点 $p$ 所在的连通块的点集 $T$ 进行转移.
为了方便,可以规定 $p$ 表示 $S$ 中编号最小的点.
$$
f(S,i+j)=\sum_{T\subset S,p\in T} g(T,i)\cdot {cnt(S-T)\choose j}
$$
概率就是合法的方案数除以总方案数.
通过枚举子集即可做到 $O(3^n\cdot m)$ 的复杂度.
1 | //%std |