核心思想:利用期望的线性性质 + 期望计算的独立性
首先看 x 2 x^2 x2 的做法:
f 1 f1 f1 表示当前这个位置长度的期望
f 2 f2 f2 表示当前这个位置长度平方的期望
( x + 1 ) 2 = x 2 + 2 x + 1 (x+1)^2 = x^2 + 2x + 1 (x+1)2=x2+2x+1
利用期望的线性性质:
(如果这个位置是 X ,那么对期望的贡献肯定是 0 了)
f 2 ′ = p [ i ] ∗ ( f 2 + 2 f 1 + 1 ) f2' = p[i] * (f2 + 2f1 + 1) f2′=p[i]∗(f2+2f1+1)
f 1 ′ = p [ i ] ∗ ( f 1 + 1 ) f1' = p[i] * (f1 + 1) f1′=p[i]∗(f1+1)
如果是 x 3 x^3 x3 呢?
我们考虑三次方的贡献: ( x + 1 ) 3 − x 3 = 3 x 2 + 3 x + 1 (x+1)^3 - x ^ 3 = 3x^2+3x+1 (x+1)3−x3=3x2+3x+1
f 3 ′ = p [ i ] ∗ ( f 3 + 3 f 2 + 3 f 1 + 1 ) f3' = p[i] * (f3 + 3f2 + 3f1 + 1) f3′=p[i]∗(f3+3f2+3f1+1)
推广到 n 次方,上述递推式都是成立的。
最后算答案是平凡的, ∑ i = 1 n ( f n [ i ] − p [ i ] ∗ f n [ i − 1 ] ) \sum_{i=1}^n (fn[i]-p[i]*fn[i-1]) ∑i=1n(fn[i]−p[i]∗fn[i−1])
其实就是一个简单的容斥而已