Luogu P4781 模板 拉格朗日插值

2022-05-07 01:12:09 字數 1020 閱讀 4875

洛谷傳送門

板題…注意一下求多個數的乘積的逆元不要乙個個快速冪求逆元,那樣很慢,時間複雜度就是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

)o(n

),查詢o(n

)o(n

)的.使用的前提是可以求逆元.

#include

#include

#include

using

namespace std;

template

<

typename t>

void

read

(t &num)

const

int maxn =

2005

;const

int mod =

998244353

;int n, k, x[maxn]

, y[maxn]

, w[maxn]

;inline

intqmul

(int a,

int b)

return res;

}inline

intl

(int k)

intmain()

int ans =0;

for(

int i =

0; i < n;

++i)

ans =

1ll* ans *

l(k)

% mod;

printf

("%d\n"

,(ans + mod)

% mod)

;}

Luogu P4781 模板 拉格朗日插值

洛谷傳送門 這是一道模板題 由小學知識可知,n nn 個點 xi yi x i,y i xi y i 可以唯一地確定乙個多項式 現在,給定 n nn 個點,請你確定這個多項式,並將 k kk 代入求值 求出的值對 998244353 998244353 998244 353 取模 輸入格式 第一行兩...

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...