【题解】Cumulative Sum
\(\texttt{ABC208 } \text{Cumulative Sum}\)
\(k\) 是一个给定的常数,递归地定义函数 \(f(n,m)\) ,有
\[f(n,m)=\left\{\begin{aligned}&0 &n=0\\&n^k &n>0,m=0\\&f(n-1,m)+f(n,m-1) &\text{otherwise}\end{aligned}\right. \]
总结一下主过程:
- 固定 \(m\) ,证明 \(f_m(x)\) 是一个关于 \(x\) 的次数界为 \(m+k+1\) 的多项式,次数界简记作 \(p\) ;
- 尝试在 \(O(mp)\) 的时间内去处理出 \(\prod_{j\neq i}(n-j),\;i!\text{ 及其模意义下的逆元},\;f(i),\;i=0,1,\cdots,p\) ;
- 大力拉格朗日插值 \(O(p)\) 得到 \(f(n)\) 。
后两步是 trivial 的,此处简单谈谈第一步。
我们先证明, \(k\ge 0\) 时
\[\sum\limits_{i=0}^Ni^{k}
\]
是一个关于 \(N\) 的次数界为 \(k+2\) 的多项式。
对 \(k\) 归纳:
\(k=0\) 时显然;
假设 \(k=K-1\) 成立,则 \(k=K\) 时,有
\[\begin{aligned}
\sum\limits_{i=0}^Ni^{K+1}+(N+1)^{K+1}&=\sum\limits_{i=0}^N(i+1)^{K+1} \\
&=\sum\limits_{i=0}^N\sum\limits_{j=0}^{K+1}\binom{K+1}{j}i^j \\
&=\sum\limits_{i=0}^Ni^{K+1}+\sum\limits_{i=0}^N\sum\limits_{j=0}^{K}\binom{K+1}{j}i^j
\end{aligned}
\]
于是
\[\sum\limits_{i=0}^Ni^K=\frac{\sum_{i=0}^{K+1}\binom{K+1}{i}N^i-\sum_{j=0}^{K-1}\binom{K+1}{j}\sum_{i=0}^{N}i^j}{\binom{K+1}{K}}
\]
\(\sum_{i=0}^{K+1}\binom{K+1}{i}N^i\) 是一个关于 \(N\) 的次数界为 \(k+2\) 的多项式,由归纳假设, \(\sum_{j=0}^{K-1}\binom{K+1}{j}\sum_{i=0}^{N}i^j\) 是一个关于 \(N\) 的次数界为 \(k+1\) 的多项式, 故右式是一个关于 \(N\) 的次数界为 \(k+2\) 的多项式。
由数学归纳法得证。
我们再证明,若 \(f_{k-1}(x)\) 是一个关于 \(x\) 的次数界为 \(k+1\) 的多项式,则
\[f_{k}(x)=\sum\limits_{i=0}^xf_{k-1}(i)
\]
是一个关于 \(x\) 的次数界为 \(k+2\) 的多项式(这个东西好像叫多项式前缀和)。
\[\begin{aligned}
f_k(x)&=\sum\limits_{i=0}^x\sum\limits_{j=0}^{k}[z^j]f_{k-1}(z)i^j \\
&=\sum\limits_{j=0}^k[z^j]f_{k-1}(z)\sum\limits_{i=0}^{x}i^j \\
\end{aligned}
\]
由之前证明的结论, \(\sum_{i=0}^xi^j\) 是一个关于 \(x\) 的次数界为 \(j+2\) 的多项式,所以 \(f_k(x)\) 是一个关于 \(x\) 的次数界为 \(k+2\) 的多项式。
\(\square\)