zoukankan      html  css  js  c++  java
  • 【模板】拉格朗日插值

    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    // Input: n,x[],y[]
    // Method: solve(x)
    // Output: f(x) (returned)
    namespace lag {
    const int N=2010;
    const int mod=998244353;
    int n,k,x[N],y[N],ans,s1,s2;
    int qpow(int a,int x) {
        int ret=1,nww=a;
        while(x) {
            if(x&1)ret=ret*nww%mod;
            nww=nww*nww%mod;
            x>>=1;
        }
        return ret;
    }
    int inv(int x) {
        return qpow(x,mod-2);
    }
    int solve(int _k) {
        k=_k;
        for(int i=1; i<=n; i++) {
            s1=y[i]%mod;
            s2=1;
            for(int j=1; j<=n; j++)if(i!=j)s1=s1*(k-x[j])%mod,s2=s2*((x[i]-x[j]%mod)%mod)%mod;
            ans+=s1*inv(s2)%mod;
            ans=(ans+mod)%mod;
        }
        return ans;
    }
    }
    
    signed main() {
        ios::sync_with_stdio(false);
        int k;
        cin>>lag::n>>k;
        for(int i=1;i<=lag::n;i++) {
            cin>>lag::x[i]>>lag::y[i];
        }
        cout<<lag::solve(k);
    }
    
  • 相关阅读:
    2019年8月22日 星期四(杂谈)
    文件读写
    log4j
    java 读写 xlsx
    mongodb的增删改查
    mongodb安装与简单配置
    mondb的特性
    mongodb 的简单应用
    linux 学习1
    linux 安装MySql
  • 原文地址:https://www.cnblogs.com/mollnn/p/12356609.html
Copyright © 2011-2022 走看看