Luogu P4781 模板 拉格朗日插值

2021-08-21 21:48:00 字數 2572 閱讀 8993

洛谷傳送門

這是一道模板題

由小學知識可知, n

nn 個點 (xi

,yi)

(x_i,y_i)

(xi​,y

i​) 可以唯一地確定乙個多項式

現在,給定 n

nn 個點,請你確定這個多項式,並將 k

kk 代入求值

求出的值對 998244353

998244353

998244

353 取模

輸入格式:

第一行兩個正整數 n,k

n,kn,

k ,含義如題

接下來 n

nn 行,每行兩個正整數 xi,

yi

x_i,y_i

xi​,yi

​ ,含義如題

輸出格式:

乙個整數表示答案

輸入樣例#1:

3 100

1 42 9

3 16

輸出樣例#1:
10201
輸入樣例#2:
3 100

1 12 2

3 3

輸出樣例#2:
100
n

≤2000xi

,yi,

k≤

998244353

n \leq 2000 \; \; \; x_i,y_i,k \leq 998244353

n≤2000

xi​,

yi​,

k≤99

8244

353;

樣例一中的三個點確定的多項式是 f(x

)=x2

+2x+

1f(x)=x^2+2x+1

f(x)=x

2+2x

+1,將 100

10010

0代入求值得到 10201

10201

10201

樣例二中的三個點確定的多項式是 f(x

)=

xf(x)=x

f(x)=x

,將 100

10010

0 代入求值得到 100

10010

0 如果你不會拉格朗日插值,你可以到這裡去學習一下

此外,請注意演算法的常數問題,建議開啟o2優化

拉格朗日插值法是什麼? 就是下面這個東西:

f (x

)=∑i

=1nf

(xi)

∏j=1

,j≠i

nx−x

jxi−

xj

f(x)=\sum_^f(x_i)\prod_^\frac

f(x)=i

=1∑n

​f(x

i​)j

=1,j

̸​=i

∏n​x

i​−x

j​x−

xj​​

那麼我們代入值進去計算即可。

複雜度o(n

2)

o(n^2)

o(n2

)(貌似有o(n

log2

n)

o(nlog^2n)

o(nlog

2n)的多項式多點插值演算法??蒟蒻不會…)

**如下:

#include

#include

#include

#include

#include

#include

#define w while

#define r register

#define in inline

#define mx 2005

#define ll long long

#define gc getchar()

#define mod 998244353ll

bool neg;

template

<

class

t>

in void

in(t &x)

w (isdigit

(c))

x =(x <<1)

+(x <<3)

+ c -

48, c = gc;

if(neg) neg =

false

, x =

-x;}

int num;

ll tar;

int x[mx]

, y[mx]

;ll qpow

(ll now, ll tim)

return ret;

}ll lagrange()

ret =

(ret + up *

qpow

(down, mod -2)

% mod * y[i]

% mod + mod)

% mod;

}return ret;

}int

main

(void

)

Luogu P4781 模板 拉格朗日插值

洛谷傳送門 板題 注意一下求多個數的乘積的逆元不要乙個個快速冪求逆元,那樣很慢,時間複雜度就是o n 2log o n 2log 直接先乘起來最後求一次逆元就行了.時間複雜度為o n log n2 o n2 o n log n2 o n2 這樣的拉格朗日插值是預處理o n 2 o n2 插入o n ...

luogu P4781 模板 拉格朗日插值

嘟嘟嘟 本來以為拉格朗日插值是乙個很複雜的東西,今天學了一下才知道就是乙個公式 我們都知道 n 個點 x i,y i 可以確定唯一乙個最高次為 n 1 的多項式,那麼現在我們已知這 n 個點,求這個多項式代入 k 時的值。首先都能想到用高斯消元 o n 3 求出多項式,然後代入 k 但是這樣有點慢,...

P4781 模板 拉格朗日插值

拉格朗日插值是一種能夠根據n個點 x i,y i 求出對應多項式的方法 定義拉格朗日插值的基函式 l i 為 l i prod n fracy i 容易發現這個函式的特點就是當 x x i 時,y y i 其他時候 y 0 所以最後插值出來的多項式就是這n個基函式求和 恰好在每個 x i 處取到 y...