联考2020A 组合数问题

本来今天想补一补中考化学,突然发现今天居然是省选联考,一看题似乎会做,就跑来写题解了。

题目

为了方便,这里的 \(b\) 就是题目中的 \(x\)

\(\sum_{k=0}^nf(k)b^k{n\choose k}\\ =\sum_{k=0}^nb^k{n\choose k}\sum_{t=0}^ma_tk^t\\ =\sum_{t=0}^ma_t\sum_{k=0}^n{n\choose k}b^kk^t\\ \)

看起来像 \(\mathbf{EGF}\) 的卷积是吧。

设: \(F(x)=\sum_i b^{n-i}\frac{x^i}{i!},G(x)=\sum_i i^t\frac{x^i}{i!}\)

则有 \(\sum_{k=0}^n{n\choose k}b^kk^t=n![x^n]F(x)G(x)\)

那么 \(F(x)\)\(G(x)\) 分别是什么呢?

\(F(x)=\sum_i b^{n-i}\frac{x^i}{i!}=b^n\sum_i b^{-i}\frac{x^i}{i!}=b^ne^{\frac{x}{b}}\)

\(G(x)=\sum_i i^t\frac{x^i}{i!}\\ =\sum_i \frac{x^i}{i!}\sum_{j=0}^t{t\brace j} i^\underline j\\ =\sum_{j=0}^t{t\brace j}\sum_i \frac{x^i}{i!} i^\underline j\\ =\sum_{j=0}^t{t\brace j}\sum_{i\ge j} \frac{x^i}{(i-j)!}\\ =\sum_{j=0}^t{t\brace j}\sum_i \frac{x^{i+j}}{i!}\\ =\sum_{j=0}^t{t\brace j}x^j\sum_i \frac{x^i}{i!}\\ =e^x\sum_{j=0}^t{t\brace j}x^j\\ \)

\(\sum_{k=0}^n{n\choose k}b^kk^t\\ =n![x^n]F(x)G(x)\\ =n!b^n[x^n]e^{\frac{x}{b}}e^x\sum_{j=0}^t{t\brace j}x^j\\ =n!b^n[x^n]e^{x(1+\frac{1}{b})}\sum_{j=0}^t{t\brace j}x^j\\ =n!b^n\sum_{j=0}^t{t\brace j}(1+\frac 1b)^{n-j}\frac{1}{(n-j)!}\)

你发现模数居然不是质数,你又发现把前面的东西挪进去分母就消掉了。于是变成:

\(\sum_{j=0}^t{t\brace j}(b+1)^{n-j}b^jn^\underline j\\\)

这就可以 \(O(t)\) 计算了。要算 \(m\) 个这样的东西,总复杂度 \(O(m^2)\)

滚去学化学了。听说还能更快,先咕着。

猜你喜欢

转载自www.cnblogs.com/Camp-Nou/p/13169222.html