「UOJ 269」「清华集训2016」如何优雅地求和
题意
给定 \(m\) 次函数 \(f\) 和 \(n,a\),求
\[ \sum_{k = 0}^{n}f(k)\binom{n}{k}a^k(1 - a) ^{n - k} \]
模 \(998244353\)
函数给出 \(0,1,\dotsc,m\) 处的点值
\(1\le n\le 10^9,1\le m\le 2\times 10^4\)
做法
把 \(f\) 表示成下降幂的系数形式,令 \(f(x)=\sum\limits_{i=0}^m f_i x^{\underline i}\)
考虑一个下降幂 \(x^{\underline t}\) 的答案
\[ \begin{align} & \sum_{k = 0}^{n} k^{\underline t} \binom{n}{k} a^k(1 - a) ^{n - k} \\ = & \sum_{k=t}^n k^{\underline t} \binom{n-t}{k-t} \frac{n^{\underline t}}{k^{\underline t}} a^k(1 - a) ^{n - k} \\ = & n^{\underline t} \sum_{k=t}^n \binom{n-t}{k-t} a^k (1-a)^{n-k} \\ = & n^{\underline t} \sum_{k=0}^{n-t} \binom{n-t}{k} a^{k+t} (1-a)^{n-k-t} \\ = & n^{\underline t} a^t \sum_{k=0}^{n-t} \binom{n-t}{k} a^k (1-a)^{n-k-t} \\ = & n^{\underline t} a^t \end{align} \]
于是我们只要知道每个系数 \(f_i\) 就可以轻易地计算答案
考虑一个下降幂 \(x^{\underline t}\) 对 \(i\) 处点值的影响 \(i^{\underline t}=\frac{i!}{(i-t)!}\),写成生成函数的形式
\[ \begin{align} & \sum_{n=0}^\infty \frac{f(n)}{n!}x^n \\ = & \sum_{i=0}^m f_i \sum_{n=i}^\infty \frac{x^n}{(n-i)!} \\ = & \sum_{i=0}^m f_i x^i \sum_{n=0}^\infty \frac{x^n}{n!} \\ = & \left( \sum_{i=0}^m f_i x^i \right) e^x \end{align} \]
于是只需要求出 \(\sum\limits_{n=0}^m \frac{f(n)}{n!} x^n\) 和 \(e^{-x}\) 的卷积就好了
复杂度 \(\mathcal O(m\log m)\)
代码
1 |
|
「UOJ 269」「清华集训2016」如何优雅地求和