拉格朗日插值

【模板】拉格朗日插值

正交多项式。记 f i ( x ) f_i(x) fi(x) 表示满足 x = x i x=x_i x=xi y = y i y=y_i y=yi x = x j x=x_j x=xj y = 0 y=0 y=0 的关于 x x x 的多项式。最终答案就是 ∑ i = 1 n f i ( x ) \sum_{i=1}^n f_i(x) i=1nfi(x)

考虑如何构造 f i ( x ) f_i(x) fi(x)。容易想到构造 ∏ j ≠ i ( x − x j ) \prod_{j \ne i} (x-x_j) j=i(xxj) 的形式。此时满足 ( x i , y i ) (x_i,y_i) (xi,yi) 限制即可,容易得出 f i ( x ) = ∏ j ≠ i ( x − x j ) ∏ j ≠ i ( x i − x j ) f_i(x) = \frac{\prod_{j \ne i} (x-x_j)}{\prod_{j \ne i}(x_i - x_j)} fi(x)=j=i(xixj)j=i(xxj)

x = k x = k x=k 代入即可。代码。

CF622F The Sum of the k-th Powers

观察到 ∑ i = 1 n i k \sum_{i=1}^n i^k i=1nik 是一个关于 n n n k + 1 k+1 k+1 次多项式,需要 k + 2 k+2 k+2 对关系以确定多项式。

注意到 x i = i x_i = i xi=i,预处理阶乘、 ( n − i ) (n-i) (ni) 的前后缀积即可。代码。

你可能感兴趣的:(学习笔记,c++)