【清华集训2016】如何优雅地求和
记多项式第\(i\)项系数是\(b_i\)
\[ans = b_0 + \sum_{i=1}^{m}b_i \sum_{k=1}^{n} k^i \binom{n}{k} x^k(1-x)^{n-k}
\]
我们考虑用第二类斯特林数展开\(k^i\)
\[k^i=\sum_{j=1}^{i}S(i,j)j! \binom{k}{j}
\]
于是
\[
\begin{aligned}
ans &= b_0 + \sum_{i=1}^{m}b_i \sum_{k=1}^{n} k^i \binom{n}{k} x^k(1-x)^{n-k}\\
&= b_0 + \sum_{i=1}^{m}b_i \sum_{k=1}^{n} \sum_{j=1}^{i}S(i,j)j! \binom{k}{j} \binom{n}{k} x^k(1-x)^{n-k}\\
&= b_0 + \sum_{i=1}^{m}b_i \sum_{j=1}^{i}S(i,j)j! \sum_{k=j}^{n} \binom{k}{j} \binom{n}{k} x^k(1-x)^{n-k}\\
&= b_0 + \sum_{i=1}^{m}b_i \sum_{j=1}^{i}S(i,j)j! \sum_{k=j}^{n} \binom{n}{j} \binom{n-j}{k-j} x^k(1-x)^{n-k}\\
&= b_0 + \sum_{i=1}^{m}b_i \sum_{j=1}^{i}S(i,j)j! \binom{n}{j} x^j \sum_{k=j}^{n} \binom{n-j}{k-j} x^{k-j}(1-x)^{n-k}\\
&= b_0 + \sum_{i=1}^{m}b_i \sum_{j=1}^{i}S(i,j)j! \binom{n}{j} x^j\\
\end{aligned}
\]
获得一个\(O(m^2)\)做法
我们考虑优化,展开第二类斯特林数
\[S(i,j)=\frac{1}{j!} \sum_{k=1}^{j}(-1)^{j-k} \binom{j}{k} k^i = \frac{1}{j!} \sum_{k=1}^{\infty}(-1)^{j-k} \binom{j}{k} k^i
\]
于是
\[
\begin{aligned}
ans &= b_0 + \sum_{i=1}^{m}b_i \sum_{j=1}^{i}S(i,j)j! \binom{n}{j} x^j\\
&= b_0 + \sum_{j=1}^{i} j! \binom{n}{j} x^j \sum_{i=1}^{m}b_i S(i,j)\\
&= b_0 + \sum_{j=1}^{i} j! \binom{n}{j} x^j \sum_{i=1}^{m}b_i \frac{1}{j!} \sum_{k=1}^{j}(-1)^{j-k} \binom{j}{k} k^i\\
&= b_0 + \sum_{j=1}^{i} \binom{n}{j} x^j \sum_{i=1}^{m}b_i \sum_{k=1}^{m}(-1)^{j-k} \binom{j}{k} k^i\\
&= b_0 + \sum_{j=1}^{i} \binom{n}{j} x^j \sum_{k=1}^{m}(-1)^{j-k} \binom{j}{k} \sum_{i=1}^{m}b_ik^i\\
\end{aligned}
\]
发现\(\sum_{i=1}^{m}b_ik^i\)就是\(f(k)-b_0\)
出题人非常凉心地给出了点值让我们不需要多点求值
于是
\[
\begin{aligned}
ans &= b_0 + \sum_{j=1}^{i} \binom{n}{j} x^j \sum_{k=1}^{m}(-1)^{j-k} \binom{j}{k} \sum_{i=1}^{m}b_ik^i\\
&= b_0 + \sum_{j=1}^{i} \binom{n}{j} x^j \sum_{k=1}^{m}(-1)^{j-k} \binom{j}{k} (f(k)-b_0)\\
\end{aligned}
\]
后面的部分是一个卷积的形式,NTT解决
\(b_0\)显然是\(f(0)\)
于是就做完了
时间复杂度\(O(mlogm)\)
不过据说各种\(O(m^2)\)做法乱艹过这题