zoukankan      html  css  js  c++  java
  • 备战NOIP——模板复习16

    这里只有模板,并不作讲解,仅为路过的各位做一个参考以及用做自己复习的资料,转载注明出处。

    拉格朗日插值

    /*Copyright: Copyright (c) 2018
    *Created on 2018-11-04 
    *Author: 十甫
    *Version 1.0 
    *Title: 拉格朗日插值
    *Time: inf mins
    */
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    const ll mod = 998244353;
    const int size = 2005;
    inline ll Mod(ll t) {
        return (t + mod) % mod;
    }
    
    ll n, k, x[size], y[size], ans, s1, s2;
    
    inline ll mul(ll a, ll b) {
        ll res = 1;
        while(b) {
            if(b & 1) res = Mod(Mod(res) * Mod(a));
            a = Mod(Mod(a) * Mod(a));
            b /= 2;
        }
        return res;
    }
    inline ll inv(ll t) {
        return mul(t, mod - 2);
    }
    
    int main() {
        scanf("%lld%lld", &n, &k);
        for(int i = 1;i <= n;i++) {
            scanf("%lld%lld", &x[i], &y[i]);
        }
        for(int i = 1;i <= n;i++) {
            s1 = Mod(y[i]), s2 = 1ll;
            for(int j = 1;j <= n;j++) if(i != j) {
                s1 = Mod(Mod(s1) * Mod(Mod(k) - Mod(x[j])));
                s2 = Mod(Mod(s2) * Mod(Mod(x[i]) - Mod(x[j])));
            }
            ans = Mod(Mod(ans) + Mod(Mod(s1) * inv(s2)));
        }
        printf("%lld
    ", ans);
        return 0;
    }
    NOIP 2018 RP++
  • 相关阅读:
    迪杰斯特拉(Dijkstra)算法描述及理解
    KMP初步
    网络流初步
    Cutting Codeforces Round #493 (Div. 2)
    优先队列小结
    树状数组初步理解
    分块思想
    树状数组-逆序对-HDU6318
    线段树
    8.12.5
  • 原文地址:https://www.cnblogs.com/Black-S/p/9930707.html
Copyright © 2011-2022 走看看