luogu P4781 【模板】拉格朗日插

简介: luogu P4781 【模板】拉格朗日插

由小学知识可知,n个点(xi,yi)可以唯一地确定一个多项式

现在,给定n个点,请你确定这个多项式,并将k代入求值

求出的值对998244353取模5.png

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
typedef long long ll;
const ll mod = 998244353;
ll xx[maxn], yy[maxn];
ll qpow(ll a, ll b) {
    ll ans = 1;
    while (b) {
        if (b & 1) {
            ans = (ans * a) % mod;
        }
        b >>= 1;
        a = (a * a) % mod;
    }
    return ans % mod;
}
int main() {
    ll n, k;
    cin >> n >> k;
    for (int i = 1; i <= n; i++) {
        cin >> xx[i] >> yy[i];
    }
    ll ans = 0;
    for (int i = 1; i <= n; i++) {
        ll ret = 1, res = 1;
        for (int j = 1; j <= n; j++) {
            if (i == j)continue;
            ret *= (k - xx[j]);
            res *= (xx[i] - xx[j]);
            ret = (ret % mod + mod) % mod; 
            res = (res % mod + mod) % mod;
        }
        ll tmp = qpow(res, mod - 2);
        ans += yy[i] * tmp % mod * ret % mod;
        ans %= mod;
    }
    cout << ans << endl;
    return 0;
}


相关文章
|
3月前
|
机器学习/深度学习
【每日一题Day196】LC2106摘水果 | 枚举+前缀和数组 同向双指针+二分查找
【每日一题Day196】LC2106摘水果 | 枚举+前缀和数组 同向双指针+二分查找
37 0
|
3月前
|
存储 算法 C++
第 284 场周赛(C++ | 枚举 | 分类讨论 | 最短路 | 建反图)
【4月更文挑战第1天】- [LeetCode 6031](https://leetcode-cn.com/problems/find-all-k-distant-indices-in-an-array/):给定数组 `nums`、键值 `key` 和距离 `k`,找到所有与键值相等且与任意下标距离不超过 `k` 的下标,返回升序排序的列表。找到最小权重。
37 0
|
3月前
|
算法 搜索推荐 程序员
第四十八练 请以递归方式实现反转字符串的函数
第四十八练 请以递归方式实现反转字符串的函数
30 2
|
3月前
代码随想录 Day50 单调栈 LeetCodeT503 下一个最大元素II T42接雨水
代码随想录 Day50 单调栈 LeetCodeT503 下一个最大元素II T42接雨水
25 0
|
SQL 人工智能 开发框架
线段树模板+例题
线段树模板+例题
66 1
洛谷—模板字典树 P8306
洛谷—模板字典树 P8306
64 0
|
存储 算法 UED
【算法入门&图论】【模板】拓扑排序|【模板】单源最短路2 |最小生成树(上)
【算法入门&图论】【模板】拓扑排序|【模板】单源最短路2 |最小生成树
69 0
|
算法 容器
【算法入门&图论】【模板】拓扑排序|【模板】单源最短路2 |最小生成树(下)
【算法入门&图论】【模板】拓扑排序|【模板】单源最短路2 |最小生成树
96 0
|
C++
蓝桥杯练习题十一 - 乘积尾零(c++)
蓝桥杯练习题十一 - 乘积尾零(c++)
100 0
蓝桥杯练习题十一 - 乘积尾零(c++)