联考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)\)。
滚去学化学了。听说还能更快,先咕着。