【清华集训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)\)做法乱艹过这题

posted @ 2021-03-05 16:59  deaf  阅读(110)  评论(0编辑  收藏  举报