普通/下降幂多项式平移

【普通多项式】

已知 \(f(x)=\displaystyle\sum_{i=0}^{n}a_ix^i\),求 \(f(x+c)\) 的系数。

\[\begin{aligned} f(x+c)&=\sum_{i=0}^na_i(x+c)^i\\ &=\sum_{i=0}^na_i\sum_{j=0}^i{i\choose j}x^jc^{i-j}\\ &=\sum_{j=0}^n\dfrac{x^j}{j!}\sum_{i=j}^{n}i!a_i\dfrac{c^{i-j}}{(i-j)!}\\ &=\sum_{i=0}^n\dfrac{x^i}{i!}\sum_{j=i}^{n}j!a_j\dfrac{c^{j-i}}{(j-i)!} \end{aligned} \]

\(ans_i=\sum_{j=i}^nj!a_j\dfrac{c^{j-i}}{(j-i)!}\),目标是求出 \(ans_0\sim ans_n\)

发现 \(j!a_j\)\(\dfrac{c^{j-i}}{(j-i)!}\) 很像卷积的形式。但是它们不是和一定而是差一定。对于这种非标准形式卷积,我们可以用翻转的方法。令 \(k=j-i\)

\[ans_i=\sum_{k=0}^{n-i}(k+i)!a_{k+i}\cdot\dfrac{c^k}{k!}=\sum_{l+k=n-i}(n-l)!a_{n-l}\cdot\dfrac{c^k}{k!} \]

开始翻转,令 \(a'_i=(n-i)!a_{n-i}\),则 \(ans_i=\sum_{l+k=n-i}a'_l\cdot \dfrac{c^k}{k!}\)

再翻转一次,令 \(ans'_i=ans_{n-i}\),则 \(ans'_i=\sum_{l+k=i}a'_l\cdot \dfrac{c^k}{k!}\)。所以 \(ans'\) 这个数组可以用 \(a'\) 数组和 \(\dfrac{c^k}{k!}\) 卷出来。

推出 \(ans\) 之后,回到 \(f(x+c)=\sum_{i=0}^n\dfrac{x^i}{i!}ans_i\) 即可。

【下降幂多项式】

已知 \(f(x)=\sum_{i=0}^{n}b_ix^{\underline{i}}\),求 \(f(x+c)\) 下降幂形式的系数。

关键公式\((x+c)^{\underline{n}}=\displaystyle\sum_{i=0}^n{n\choose i}x^{\underline{i}}c^{\underline{n-i}}\)

\[\begin{aligned} f(x+c)&=\sum_{i=0}^nb_i(x+c)^{\underline{i}}\\ &=\sum_{i=0}^nb_i\sum_{j=0}^i{i\choose j}x^{\underline{j}}c^{\underline{i-j}}\\ &=\sum_{j=0}^{n}\dfrac{x^{\underline{j}}}{j!}\sum_{i=j}^ni!b_i\dfrac{c^{\underline{i-j}}}{(i-j)!}\\ &=\sum_{i=0}^{n}\dfrac{x^{\underline{i}}}{i!}\sum_{j=i}^nj!b_j\dfrac{c^{\underline{j-i}}}{(j-i)!}\\ &=\sum_{i=0}^n\dfrac{x^{\underline{i}}}{i!}ans_i\\ \end{aligned} \]

\[\begin{aligned} ans_i&=\sum_{j=i}^nj!b_j\dfrac{c^{\underline{j-i}}}{(j-i)!}\\ &=\sum_{j=0}^{n-i}(j+i)!b_{j+i}\cdot\dfrac{c^{\underline{j}}}{j!}\\ &=\sum_{j=0}^{n-i}b'_{n-i-j}\cdot \dfrac{c^{\underline{j}}}{j!} \end{aligned} \]

\[ans'_i=ans_{n-i}=\sum_{j=0}^{n-(n-i)}b'_{n-(n-i)-j}\cdot \dfrac{c^{\underline{j}}}{j!}=\sum_{j=0}^i b'_{i-j}\cdot \dfrac{c^{\underline{j}}}{j!}=\sum_{j+k=i}b'_j\dfrac{c^{\underline{k}}}{k!} \]

所以两种多项式平移都是 \(O(n\log n)\) 的。

posted @ 2024-05-26 09:26  FLY_lai  阅读(17)  评论(0编辑  收藏  举报