UOJ269 清华集训2016 如何优雅地求和 下降幂多项式、NTT

代码


神仙题?

看到连续的点值,那么一定是要利用到连续点值的性质,可以考虑下降幂多项式,即考虑多项式\(F(x) = \sum\limits_{i=0}^m a_ix^{\underline i}\)。

因为有下降幂,下降幂和阶乘相关,所以可以考虑点值的指数型生成函数,故设\(G(x) = \sum\limits_{i=0}^\infty \frac{f(i)}{i!} x^i\)。我们考虑\(F(x) = x^{\underline m}\),那么\(G(x) = \sum\limits_{i=0}^\infty \frac{i^{\underline m}}{i!} x^i = \sum\limits_{i=m}^\infty \frac{x^i}{(i-m)!} = x^m e^x\),也就是说设\(H(x) = \sum\limits_{i=0}^m a_ix^i\),那么\(H(x)e^x = G(x)\),即\(H(x) = G(x)e^{-x}\),我们就可以通过连续的点值+NTT得到下降幂多项式的每一项的系数。

然后我们考虑\(Q(F,n,x)\)。因为\(F(x)\)是下降幂的形式,所以我们只需要考虑\(Q(f(x) = x^{\underline k} , n , x)\)的值。

\(\begin{align*} Q(x^\underline k , n , x) &= \sum\limits_{i=0}^n i^\underline k \binom{n}{i} x^i (1-x)^{n-i} \\ &= \sum\limits_{i=k}^n \frac{n!}{(n-i)!(i-k)!} x^i (1-x)^{n-i} \\ &= n^\underline k\sum\limits_{i=k}^n \frac{(n-k)!}{(n-i)!(i-k)!} x^i (1-x)^{n-i} \\ &= n^\underline k \sum\limits_{i=0}^{n-k} \binom{n-k}{i}x^{i+k}(1-x)^{n-k-i} \\ &= n^\underline k x^k \end{align*}\)

就可以\(O(m)\)计算答案。复杂度\(O(mlogm)\)

代码

上一篇:ZOJ 3874 Permutation Graph (分治NTT优化DP)


下一篇:bzoj2194 快速傅立叶之二 ntt