模板 牛客網多校模板整理 杜教拉格朗日插值法

2021-08-21 19:56:59 字數 2232 閱讀 2869

#include

#define ll long long

#define inf 0x3f3f3f3f

#define ll long long

#define ull unsigned long long

using namespace std;

const int maxn = 1000+4;

const ll mod = 1e9+7;

ll a[maxn];

int n;

ll b[maxn];

/*測試用例 (函式)x^3-2*x+7

a=第0-4項和 115

最高次項3,代入項數4

*/namespace polysum return res;}

//函式用途:給出數列的(d+1)項,其中d為最高次方項

//求出數列的第n項,陣列下標從0開始

ll calcn(int d,ll *a,ll n)

rep(i,0,d+1)

ll ans=0;

rep(i,0,d+1)

return ans;

}void init(int m)

//函式用途:給出數列的(m+1)項,其中m為最高次方

//求出數列的前(n-1)項的和

ll polysum(ll m,ll *a,ll n) ^ a[i]

ll b[d];

for(int i=0;i<=m;i++) b[i]=a[i];

b[m+1]=calcn(m,b,m+1);

rep(i,1,m+2) b[i]=(b[i-1]+b[i])%mod;

return calcn(m+1,b,n-1);

}ll qpolysum(ll r,ll n,ll *a,ll m) ^ a[i]*r^i

if (r==1) return polysum(n,a,m);

a[m+1]=calcn(m,a,m+1);

ll r=powmod(r,mod-2),p3=0,p4=0,c,ans;

h[0][0]=0;h[0][1]=1;

rep(i,1,m+2)

rep(i,0,m+2)

c=powmod(p4,mod-2)*(mod-p3)%mod;

rep(i,0,m+2) h[i][0]=(h[i][0]+h[i][1]*c)%mod;

rep(i,0,m+2) c[i]=h[i][0];

ans=(calcn(m,c,n)*powmod(r,n)-c)%mod;

if (ans<0) ans+=mod;

return ans;

}} // polysum::init();

ll pow2(ll a,ll b)

return res%mod;

}int main()

cout<2)while(~scanf("%d",&n))

//

// now = 1;

// ans = 0;

//sort(a+1,a+1+n);

//for(int i = 1;i<=n;i++)

// ans = (ans%mod+now*(polysum::polysum(n-i+1,b,a[i]+1)%mod-polysum::polysum(n-i+1,b,a[i-1]+1)%mod+mod)%mod)%mod;

// now = (now%mod

*a[i]%mod)%mod;

// }

// printf("%lld\n",ans);

// }

}

例外一種n^2的更為靈活的多項式拉格朗日插值法

#include

#define ha 998244353

using namespace std;

int pow(int a,int b)

int lagrange(int

*arrx,int

*arry,int n,int

x) res=(res+1ll*s1

*pow(s2,ha-2)%ha

*arry[i])%ha;

}return res;

}int a[2010],b[2010];

int main()

模板 拉格朗日插值

由小學知識可知n個點 x i,y i 可以唯一地確定乙個多項式 y f x 那麼問題來了,既然這是小學的知識,那麼為什麼我這個初一的蒟蒻看到這玩意還是一臉懵呢 引入正題 我們改怎麼求出這個多項式呢?當然是用拉格朗日插值來求解啊,不然這題怎麼叫 拉格朗日插值 的模板呢 滑稽滑稽 那麼插值又是什麼東東呢...

模板 拉格朗日插值法

update 其實拉格朗日插值法的問題在於求分母的複雜度是 o n 2 的,要是還要求逆元則再多乙個 logp 變成 o n 2logp 但是當乙個多項式要重複使用的時候,也不必求出他的各個係數,只要預處理出各項分母的逆元之後,o nlogp 處理分子 求出字首積和字尾積 然後再插值,漸進複雜度和求...

Luogu P4781 模板 拉格朗日插值

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