ZJOI2020 抽卡(拉格朗日反演)

该博客介绍了如何利用拉格朗日反演解决ZJOI2020中的一道抽卡问题。通过转化原问题为求解特定序列的选择方案数,博主探讨了二元生成函数与拉格朗日反演的关系,以及在没有复合逆的情况下如何处理。最后,博主提到这种方法在实际应用中可能被分治FFT算法在时间效率上超越。
摘要由CSDN通过智能技术生成

题目
二元生成函数与拉格朗日反演:
比较好的形式:对于二元 G F GF GF,第二个元一般来说都是来辅助的,因为一个元用来拉格朗日反演了,另一个元就可以让我们来做多项式操作。
比如二元 G F : GF: GF: H ( u , z ) = 1 1 − u F ( z ) H(u,z) = \frac {1}{1 - uF(z)} H(u,z)=1uF(z)1 F ( z ) F(z) F(z)有复合逆 G ( z ) G(z) G(z)
则由于拓展拉格朗日反演: [ z n ] 1 1 − u F ( z ) = 1 n [ z n − 1 ] d 1 1 − u z d z ( z G ( z ) ) n [z^n]\frac 1{1-uF(z)} = \frac 1n[z^{n-1}]\frac {d\frac 1{1-uz}}{dz}(\frac {z}{G(z)})^n [zn]1uF(z)1=n1[zn1]dzd1uz1(G(z)z)n
因为 d 1 1 − u z d z = ( ∑ i = 0 u i z i ) ′ = ∑ i = 0 u i + 1 ( i + 1 ) z i \frac {d\frac 1{1-uz}}{dz} = (\sum_{i=0} u^iz^i) ' = \sum_{i=0} u^{i+1}(i+1)z^i dzd1uz1=(i=0uizi)=i=0ui+1(i+1)zi
所以我们可以在得到 ( z G ( z ) ) n (\frac {z}{G(z)})^n (G(z)z)n O ( n ) O(n) O(n)求出 H ( u , z ) [ z n ] = ∑ i = 0 n [ z n ] F ( z ) i u i H(u,z)[z^n] = \sum_{i=0}^n [z^n]F(z)^iu^i H(u,z)[zn]=i=0n[zn]F(z)iui
也就是说我们可以得到 ∀ i ∈ [ 0 , n ] [

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值