ABC331G Collect Them All 做题记录

mm 个卡,第 ii 个卡每次抽到的概率都是 ain\frac{a_i}{n},其中 n=i=1main=\sum\limits_{i=1}^m a_i,求集齐所有卡期望需要多少次,对 998244353998244353 取模。

1n,m1051\le n,m\le 10^51ain1\le a_i\le n

首先 min-max 容斥转化为背包。

然后相当于 k=1nnk[xk]i=1m(1xai)\sum\limits_{k=1}^{n}\frac{n}{k}[x^k]\prod\limits_{i=1}^m (1-x^{a_i})

i=1m(1xai)\prod\limits_{i=1}^m (1-x^{a_i}) 转化为 exp(i=1mln(1xai))\exp\left(\sum\limits_{i=1}^m\ln(1-x^{a_i})\right)

ln(1xv)=vxv11xv=j=0vxv1+vj=j=1vxvj1=j=1vjxvj1j\begin{aligned} \ln(1-x^v)'&=\frac{-vx^{v-1}}{1-x^v}\\ &=-\sum\limits_{j=0}^{\infin}vx^{v-1+vj}\\ &=-\sum\limits_{j=1}^{\infin}vx^{vj-1}\\ &=-\sum\limits_{j=1}^{\infin}\frac{vjx^{vj-1}}{j}\\ \end{aligned}

ln(1xv)dx=j=1vjxvj1jdx=j=1vjxvj1dxj=j=1xvjj=j=1xvjj\begin{aligned} \int \ln(1-x^v)'dx&=\int -\sum\limits_{j=1}^{\infin}\frac{vjx^{vj-1}}{j}dx\\ &=-\sum\limits_{j=1}^{\infin}\frac{\int vjx^{vj-1}dx}{j}\\ &=-\sum\limits_{j=1}^{\infin}\frac{x^{vj}}{j}\\ &=-\sum\limits_{j=1}^{\infin}\frac{x^{vj}}{j}\\ \end{aligned}

ln(1xv)=j=1xvjj\ln(1-x^v)=-\sum\limits_{j=1}^{\infin}\frac{x^{vj}}{j}

注意到 j=1xvjj-\sum\limits_{j=1}^{\infin}\frac{x^{vj}}{j}mod xn\text{mod } x^n 意义下只有 nv\lfloor\frac{n}{v}\rfloor 项非零,枚举 vv 即可 O(nlnn)O(n\ln n) 算出 i=1mln(1xai)\sum\limits_{i=1}^m\ln(1-x^{a_i}),然后 O(nlogn)O(n\log n) 求 exp 即可。

时间复杂度 O(m+nlogn)O(m+n\log n)