ことばがありあまれどなお、 このゆめはつづい|

trsins

园龄:3年10个月粉丝:18关注:2

【做题记录】CF1278F Cards

  • CF1278F Cards

    • 斯特林数、组合数学

题目:

m 张牌,其中有一张是王牌。将这些牌均匀随机打乱 n 次,设有 x 次第一张为王牌,求 xk 的期望值。

答案对 998244353 取模。

原题 k5000,加强版 k107


题解:

被 dp 虐惨了过来愉悦身心了属于是。

p=1m,q=1p

显然答案为:

ans=i=1n(ni)piqniik=i=0n(ni)piqnij=0i{kj}(ij)j!=j=0nj!{kj}i=jn(ni)(ij)piqni=j=0nj!{kj}i=jn(nj)(njij)piqni=j=0nj!{kj}(nj)i=0nj(nji)pi+jqnij=j=0nj!{kj}(nj)pji=0nj(nji)piq(pj)i=j=0nj!{kj}(nj)pj(p+q)nj=j=0kj!pj(nj){kj}

如果是原题的话,现在使用斯特林数的朴素 O(k2) 递推即可通过。

或者使用预处理行/NTT 的方式 O(klogk)

下面是加强版:

然后考虑化解开斯特林数:

ans=j=0kj!pj(nj)1j!i=0j(ji)(1)jiik=i=0kikj=ik(nj)(ji)pj(1)ji=i=0k(1)kik(ni)j=in(niji)(p)j=i=0k(1)kik(ni)j=0ki(nij)(p)j+i=i=0kpiik(ni)j=0ki(nij)(p)j

f(i)=j=0ki(nij)(p)j,那么原式变成 O(k) 递推的式子:

ans=i=0kpiik(ni)f(i)

考虑求出 f(i),显然 f(k)=1,那么我们考虑逆推。

f(i)=j=0ki(nij)(p)j=j=0ki((n(i+1)j)+(ni1j1))(p)j=j=0ki(n(i+1)j)(p)j+j=0ki(ni1j1)(p)j=f(i+1)+(ni1ki)(p)ki+(p)j=0k(i+1)(n(i+1)j)(p)j=q×f(i+1)+(ni1ki)(p)ki

筛完后直接递推。

时间复杂度 O(k)

本文作者:trsins

本文链接:https://www.cnblogs.com/trsins/p/15815372.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   trsins  阅读(71)  评论(2编辑  收藏  举报
点击右上角即可分享
微信分享提示