有 m 个卡,第 i 个卡每次抽到的概率都是 nai,其中 n=i=1∑mai,求集齐所有卡期望需要多少次,对 998244353 取模。
1≤n,m≤105,1≤ai≤n。
首先 min-max 容斥转化为背包。
然后相当于 k=1∑nkn[xk]i=1∏m(1−xai)。
把 i=1∏m(1−xai) 转化为 exp(i=1∑mln(1−xai))。
ln(1−xv)′=1−xv−vxv−1=−j=0∑∞vxv−1+vj=−j=1∑∞vxvj−1=−j=1∑∞jvjxvj−1
∫ln(1−xv)′dx=∫−j=1∑∞jvjxvj−1dx=−j=1∑∞j∫vjxvj−1dx=−j=1∑∞jxvj=−j=1∑∞jxvj
ln(1−xv)=−j=1∑∞jxvj
注意到 −j=1∑∞jxvj 在 mod xn 意义下只有 ⌊vn⌋ 项非零,枚举 v 即可 O(nlnn) 算出 i=1∑mln(1−xai),然后 O(nlogn) 求 exp 即可。
时间复杂度 O(m+nlogn)。