載譚 Binomial Sum 學習筆記

Fido_Puppy發表於2024-06-06

原文連結:載譚 Binomial Sum:多項式複合、插值與泰勒展開

下面就從例題開始慢慢說這個演算法。

P5430 [SNOI2017] 禮物 加強版

題目描述

給定 \(n, k\),求

\[n^k+\sum_{i=1}^{n-1} 2^{n-1-i}i^k \]

答案對 \(10^9+7\) 取模。

\(1 \le n \le 10^{100000}, 1 \le k \le 2\times 10^7\)

題解

不妨將形式化得好看一些,只需要求

\[\sum_{i=0}^n a^ii^k \]

其中滿足 \(a \ne 1\)

寫成生成函式的形式:

\[\left[\frac{x^k}{k!}\right]\sum_{i=0}^{n} {(ae^x)}^i \]

\(\displaystyle F(x)=\sum_{i=0}^n x^i=\frac{1-x^{n+1}}{1-x}\),所求即 \(\displaystyle\left[\frac{x^k}{k!}\right]F(ae^x)\)

\[\left[\frac{x^k}{k!}\right]F(x)\circ(ae^x)=\left[\frac{x^k}{k!}\right]F(x+a)\circ(ae^x-a) \]

\(\mathscr{F}(x+a)=F(x+a)\bmod x^{k+1}\),則

\[\left[\frac{x^k}{k!}\right]F(x+a)\circ (ae^x-a)=\left[\frac{x^k}{k!}\right]\mathscr{F}(x+a)\circ (ae^x-a)=\left[\frac{x^k}{k!}\right]\mathscr{F}(x)\circ (ae^x) \]

\[F(x)=\frac{1-x^{n+1}}{1-x} \]

\[F(x)\cdot(1-x)=1-x^{n+1} \]

兩邊同時求導,可得

\[F(x)-F'(x)\cdot(1-x)=(n+1)x^n \]

兩邊同時複合 \(x+a\),可得

\[F(x+a)-F'(x+a)\cdot(1-a-x)=(n+1){(x+a)}^n \]

考慮將 \(F(x+a)\) 替換成 \(\mathscr{F}(x+a)\) 會產生什麼影響。

\[\mathscr{F}(x+a)-\mathscr{F}'(x+a)\cdot(1-a-x)=[(n+1){(x+a)}^n \bmod{x^{k+1}}]+[x^k]F'(x+a)\cdot(1-a-x) \]

相關文章