拉格朗日插值求调
  • 板块学术版
  • 楼主shengziheng
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/7/21 19:52
  • 上次更新2023/10/27 19:02:21
查看原帖
拉格朗日插值求调
733786
shengziheng楼主2022/7/21 19:52

蒟蒻的代码

#include<bits/stdc++.h>
using namespace std;
#define mod1091 int(1e9+1)
#define mod1071 int(1e7+1)
#define LL long long
LL x[2010],y[2010],n,k;
long long ppow(LL a,LL b,LL p=mod1091){
    LL ret = 1;
    while(b){
        if(b & 1) ret = (ret * a) % p;
        a = (a * a) % p;
        b >>= 1;
    }
    return ret;
}
LL inv(LL a){
        return ppow(a, mod1091-2)%mod1091;
}LL lglr(int a){
    LL ans=0;
    for(int i=1;i<=n;i++){
        LL p=y[i]%mod1091,q=1;
        for(int j=1;j<=n;j++){
            
            if(i!=j){
                p*=(a-x[j])%mod1091;
                q*=(x[i]-x[j])%mod1091;
                cout<<p<<" \n";
            }
        }
        ans+=p*inv(q)%mod1091;
            ans%=mod1091;
    }return (ans+mod1091)%mod1091;
}
int main(){
    int a;
    cin>>n>>a;
    for(int i=1;i<=n;i++){
        cin>>x[i]>>y[i];
    }cout<<lglr(a);
}
2022/7/21 19:52
加载中...