Problem. U

题意简述:

给定非负整数列\(\{a_n\}\),求

\[\forall m\in[0,n]\quad f_m=\sum_{i=0}^na_i\sum_{j=0}^n(-1)^j{m\choose j}{n-m\choose i-j} \]

\(998244353\)取模。

数据范围:

\(n\le10^6\)

解法:

\(A(x)=\sum a_ix^i,f_m=\sum\limits_{i=0}^n[x^i]F_m\)

\[\begin{aligned} F_m(x)&=(1-x)^m(1+x)^{n-m}\cdot A\\ &=(\frac{1+x}{1-x})^m(1+x)^n\cdot A\\ &=(A(-\times)(1+x)^n)\cdot(1+\frac{-2x}{1+x})^m\\ &=(A(-\times)(1+x)^n)\cdot(\sum\limits_{i=0}^m(-2)^i{m\choose i}(\frac x{1+x})^i)\\ &=\sum\limits_{i=0}^m(-2)^i{m\choose i}((\frac x{1+x})^i\cdot(A(-\times)(1+x)^n)) \end{aligned} \]

其中\((-\times)\)表示减法卷积。

先求出\(P=A(-\times)(1+x)^n\),令\(Q_i=(\frac x{1+x})^i\cdot P\),那么

\[\begin{aligned} f_m&=\sum\limits_{i=0}^m(-2)^i{m\choose i}\sum\limits_{k=0}^n[x^k]Q_i(x) \end{aligned} \]

那么现在我们只需要求出\(S_i=\sum\limits_{k=0}^n[x^k]Q_i(x)\)即可。

\[\begin{aligned} S_i&=\sum\limits_{k=i}^n{-i\choose k-i}[x^k]P(x)\\ \end{aligned} \]

直接减法卷积即可。

总的时间复杂度为\(O(n\log n)\)

posted @ 2020-05-29 21:34  Shiina_Mashiro  阅读(200)  评论(1编辑  收藏  举报