设 f [ i ] f[i] f[i] 为 i i i 个点成为连通块的概率,那么考虑答案枚举每个连通块对期望的贡献,一个大小为 k k k 的连通块对答案的贡献是 ( n k ) f [ k ] ( 1 − p ) ( n − k ) k \binom{n}{k}f[k](1-p)^{(n-k)k} (kn)f[k](1−p)(n−k)k。
随便 dp 一下(用1减去不连通的概率,考虑1号点所在的连通块大小),有:
f
[
i
]
=
1
−
∑
j
+
k
=
i
,
j
≠
0
,
k
≠
0
f
[
j
]
(
i
−
1
j
−
1
)
(
1
−
p
)
j
k
f[i]=1-\sum_{j+k=i,j\neq0,k\neq0}f[j]\binom{i-1}{j-1}(1-p)^{jk}
f[i]=1−j+k=i,j=0,k=0∑f[j](j−1i−1)(1−p)jk
然后我们会发现
j
k
jk
jk 在
(
1
−
p
)
(1-p)
(1−p) 的头上,正是这题的难点。把
j
k
jk
jk 变个型
j
k
=
(
i
2
−
j
2
−
k
2
)
/
2
jk=(i^2-j^2-k^2)/2
jk=(i2−j2−k2)/2 ,但是这样如果拆开卷会导致除以二在指数上,所以把
j
k
jk
jk 变成
(
i
2
−
j
2
−
k
2
−
i
+
j
+
k
)
/
2
(i^2-j^2-k^2-i+j+k)/2
(i2−j2−k2−i+j+k)/2。然后把原式卷一下:
f
[
i
]
=
1
−
∑
j
+
k
=
i
,
j
≠
0
,
k
≠
0
f
[
j
]
(
i
−
1
j
−
1
)
(
1
−
p
)
j
k
=
1
−
(
1
−
p
)
(
i
−
i
2
)
/
2
(
i
−
1
)
!
∑
j
+
k
=
i
,
j
≠
0
,
k
≠
0
(
f
[
j
]
(
1
−
p
)
(
j
−
j
2
)
/
2
(
j
−
1
)
!
)
(
(
1
−
p
)
(
k
−
k
2
)
/
2
k
!
)
\begin{aligned} f[i]&=1-\sum_{j+k=i,j\neq0,k\neq0}f[j]\binom{i-1}{j-1}(1-p)^{jk}\\ &=1-(1-p)^{(i-i^2)/2}(i-1)!\sum_{j+k=i,j\neq0,k\neq0}\left(\frac{f[j](1-p)^{(j-j^2)/2}}{(j-1)!}\right)\left(\frac{(1-p)^{(k-k^2)/2}}{k!}\right)\\ \end{aligned}
f[i]=1−j+k=i,j=0,k=0∑f[j](j−1i−1)(1−p)jk=1−(1−p)(i−i2)/2(i−1)!j+k=i,j=0,k=0∑((j−1)!f[j](1−p)(j−j2)/2)(k!(1−p)(k−k2)/2)
到这里就可以用CDQNTT
O
(
n
log
2
n
)
O(n\log^2n)
O(nlog2n) 解出
f
f
f。但是这样复杂度仍然过不了。
(
1
−
p
)
(
i
2
−
i
)
/
2
/
(
i
−
1
)
!
f
[
i
]
=
(
1
−
p
)
(
i
2
−
i
)
/
2
/
(
i
−
1
)
!
−
∑
j
+
k
=
i
,
j
≠
0
,
k
≠
0
(
f
[
j
]
(
1
−
p
)
(
j
−
j
2
)
/
2
(
j
−
1
)
!
)
(
(
1
−
p
)
(
k
−
k
2
)
/
2
k
!
)
\begin{aligned} (1-p)^{(i^2-i)/2}/(i-1)!\ f[i]&=(1-p)^{(i^2-i)/2}/(i-1)!-\sum_{j+k=i,j\neq0,k\neq0}\left(\frac{f[j](1-p)^{(j-j^2)/2}}{(j-1)!}\right)\left(\frac{(1-p)^{(k-k^2)/2}}{k!}\right)\\ \end{aligned}
(1−p)(i2−i)/2/(i−1)! f[i]=(1−p)(i2−i)/2/(i−1)!−j+k=i,j=0,k=0∑((j−1)!f[j](1−p)(j−j2)/2)(k!(1−p)(k−k2)/2)
令
(
1
−
p
)
(
i
2
−
i
)
/
2
(
i
−
1
)
!
f
[
i
]
=
F
[
i
]
\dfrac{(1-p)^{(i^2-i)/2}}{(i-1)!}f[i]=F[i]
(i−1)!(1−p)(i2−i)/2f[i]=F[i],
(
1
−
p
)
(
k
−
k
2
)
/
2
k
!
=
G
[
k
]
\dfrac{(1-p)^{(k-k^2)/2}}{k!}=G[k]
k!(1−p)(k−k2)/2=G[k]
(
1
−
p
)
(
i
2
−
i
)
/
2
(
i
−
1
)
!
=
M
[
i
]
\dfrac{(1-p)^{(i^2-i)/2}}{(i-1)!}=M[i]
(i−1)!(1−p)(i2−i)/2=M[i]
特殊地, F [ 0 ] = G [ 0 ] = M [ 0 ] = 0 F[0]=G[0]=M[0]=0 F[0]=G[0]=M[0]=0。
于是有 F = M − F ∘ G ⇒ F = M G + 1 F=M-F\circ G\Rightarrow F=\dfrac{M}{G+1} F=M−F∘G⇒F=G+1M。
做一次多项式逆就可算出 F F F。
算出
F
F
F 后,计算答案,即:
∑
k
=
1
n
(
n
k
)
f
[
k
]
(
1
−
p
)
(
n
−
k
)
k
=
n
!
(
1
−
p
)
(
n
2
−
n
)
/
2
∑
k
=
1
n
(
F
[
i
]
/
i
)
∗
(
q
(
j
−
j
2
)
/
2
/
j
)
=
G
−
1
[
n
]
∗
[
x
n
]
(
F
(
x
)
x
∘
(
G
(
x
)
+
1
)
)
\begin{aligned} &\sum_{k=1}^n\binom{n}{k}f[k](1-p)^{(n-k)k}\\ =&n!(1-p)^{(n^2-n)/2}\sum_{k=1}^n (F[i]/i) *(q^{(j-j^2)/2}/j)\\ =&G^{-1}[n]*[x^n]\left(\dfrac{F(x)}{x}\circ (G(x)+1)\right) \end{aligned}
==k=1∑n(kn)f[k](1−p)(n−k)kn!(1−p)(n2−n)/2k=1∑n(F[i]/i)∗(q(j−j2)/2/j)G−1[n]∗[xn](xF(x)∘(G(x)+1))