Lagrange插值法
结论
Lagrange插值法用来解决如下问题
已知\(n\)个点\(P_{i}(x_{i},y_{i})\),求由他们确定的至多\(n-1\)次的多项式\(f(x)\)
先直接给出公式
\[f(x)=\sum_{i=1}^{n}(y_{i}\prod_{j\neq i}\frac{x-x_{j}}{x_{i}-x_{j}})
\]
证明
考虑这样一种函数
\[g_{i}(x)=\begin{cases}0&x=x_{j},j\neq i\\y_{i}&x=x_{i}\end{cases}
\]
于是
\[f(x)=\sum_{i=1}^{n}g_{i}(x)
\]
下面需要求出\(g_{i}(x)\)的多项式形式
-
要使得\(g_{i}(x_{j})=0,j\neq i\)
只需令\((x-x_{j})\)为\(g_{i}(x)\)的因式 -
设\(g_{i}(x)=k\prod_{j\neq i}(x-x_{j})\)
-
要使得\(g_{i}(x_{i})=y_{i}\)
则\(k=y_{i}\prod_{j\neq i}\frac{1}{x_{i}-x_{j}}\) -
整理即得\(g_{i}(x)=y_{i}\prod_{j\neq i}\frac{x-x_{j}}{x_{i}-x_{j}}\)
于是
\[f(x)=\sum_{i=1}^{n}g_{i}(x)=\sum_{i=1}^{n}(y_{i}\prod_{j\neq i}\frac{x-x_{j}}{x_{i}-x_{j}})
\]
Q.E.D
题目
Question
给定\(n\)个点,他们确定的多项式为\(f(x)\),输出\(f(k) \bmod 998244353\)的值。
Solution
套公式
\[f(k) \equiv \sum_{i=1}^{n}(y_{i}\prod_{j\neq i}[(k-x_{j})(x_{i}-x_{j})^{-1}]) \pmod{998244353}
\]
复杂度\(O(n^2\log 998244353)\),对于数据范围\(n=2\times10^3\)来说不一定能过
可优化的点在于求逆元的次数,上式可优化为
\[f(k) \equiv \sum_{i=1}^{n}(y_{i}[\prod_{j\neq i}(k-x_{j})][\prod_{j\neq i}(x_{i}-x_{j})]^{-1}) \pmod{998244353}
\]
复杂度\(O(n^2+n\log 998244353)\),能过

浙公网安备 33010602011771号