一个奇妙的斯特林数推导

大概没啥人来看这个咸鱼的博客了吧。 虽然一直没更新,但时不时还会回来看。有些偶然的感想,或者被以前自己高妙的想法震惊到的,还会放在这里。 因为很长时间没搞OI了,数学的内容应该会多一点。

给定n,m,k,求:

i=0m(mi)(nm+2ik)

n,m109,k103

多组询问,组数100

i=0m(mi)(nm+2ik)=1k!i=0m(mi)(nm+2i)k=1k!i=0m(mi)(j=0k(kj)(nm)kj(2i)j)=1k!j=0k(kj)(nm)kj(i=0m(mi)(2i)j)

考虑如何计算i=0m(mi)(2i)j

=i=0m(mi)(p=0j(1)jp[jp](2i)p)=i=0m(mi)(p=0j(1)jp[jp]2pip)=p=0j(1)jp[jp]2p(i=0m(mi)ip)=p=0j(1)jp[jp]2p(i=0m(mi)(o=0p{po}o!(io)))=p=0j(1)jp[jp]2p(o=0p{po}o!(i=0m(mi)(io)))=p=0j(1)jp[jp]2p(o=0p{po}o!(mo)2mo)=p=0j(1)jp[jp]2p(o=0p{po}mo2mo)

直接计算是O(k3)的,但考虑j,o之间的贡献:

p=oj(1)jp[jp]2p{po}

是常数,可以用O(k3)预处理,就可以做到O(k2)回答询问。

P.S.听说这题有纯组合数做法,有没有人教教我啊

2020.12.28 至少,我们都曾经闪耀过。

2021.10.11

突然回看博客,会推组合数做法了。

太弱小了没有力量。

(nm+2ik)实际上是ik次多项式,将其拆分为若干(ik)的线性叠加,分别求解题中的和式。

i=0m(mi)(ik)=(mk)2mk

可以用组合数公式证明上面的式子,但组合意义更快:式子就是统计m个元素先选任意个再选k个的方案,那么首先枚举最后选出的k个,剩下的是否出现在第一次选择中随意。