經典數數題
- 咱們硬點一個集合在 1 後面死而後容斥
考慮每次在
[1,n] 隨機,若是不在集合
S 中就跳過,那麼每一個人死亡的機率是同樣的,證實以下
∑i∈Swiwt=∑i=1nwiwt(i≥0∑(∑j=1nwj∑j=1nwj−∑j∈Swj)i)
分治
ntt 算一下大小爲
Sum 的集合個數(帶容斥係數)
- 考慮
min−max 容斥,咱們對一個集合
S 求出它當中第一個餵飽的指望,假設第一個餵飽的時間爲
t,咱們用方案數除以總方案即
∣S∣t 就能夠獲得指望,方案數寫成
egf 的形式就是(咱們欽定一個最早飽,那麼總方案乘上
∣S∣ 便可)
t![xt](k−1)!xk(i=0∑k−1i!xi)∣S∣−1∗∣S∣t1∗∣S∣n∗t∗∣S∣
注意到
ft(x)=(∑i=0k−1i!xi)t 是能夠遞推的
ft(x)′=tft−1(x)(f(x)−(k−1)!xk−1)(n+1)[xn+1]ft(x)=t[xn]ft(x)−t[xn−k+1](k−1)!ft−1(x)
O(n2k)
- 考慮對一個點統計它滿了存在一個其它沒有滿的機率,最後乘上
n 便可
咱們硬點一個集合
S,求出這個點滿了其它的都沒有滿的機率最後容斥,寫成
egf 的形式就是
(t+a−1)![xt+a](a−1)!xa(i=0∑b−1i!xi)∣S∣(∣S∣+1)t+a1
O(n3)