拉格朗日插值

\[f(k) = \sum_{i = 1}^{n} y_i \prod_{i \not = j} \frac{k - x_j}{x_i - x_j} \]

证明直接带入,假设\(k=x_1\),那么除了第一项,别的每一项都会有\((x_1-x_1)\)的分子,乘起来都是\(0\)。而第一项,后面累乘的每项都恰好为\(1\),所以\(f(x_1)=y_1\)

然后如果我们取一段连续的\(x_i=i\),有

\[S_k(n)=\sum\limits_{i=1}^{k+2}S_k(i)\prod\limits_{i\not ={j}}\dfrac{n-j}{i-j} \]

分别把分子、分母拆开,预处理,可以做到\(O(k)\)

它可以应用到\(dp\)上。具体的,如果\(dp\)有一维的值域明显很大,考虑答案是否可以表示为较低次多项式,从而用拉格朗日插值求解。

具体的,比如CF995F Cowmpany Cowmpensation中,有

\[g_{x,j}-g_{x,j-1}=f_{x,j}=\prod_{y\in{son_x}}g_{y,j} \]

那么\(g_{i,j}\)为一个次数不超过\(sz_i\)的多项式。所以我们只要处理到\(g_{1,n+1}\)即可,不用算到\(g_{1,d}\)

posted @ 2021-04-02 21:19  andysj  阅读(144)  评论(0编辑  收藏  举报