拉格朗日插值学习
模板
#include<bits/stdc++.h>
using namespace std;
const int mod = 998244353;
int x[2010],y[2010],n,K,Ans=0;
inline int pw(int x,int p){
int res=1;
while(p){
if(p&1)res=1ll*res*x%mod;
x=1ll*x*x%mod;
p>>=1;
}
return res;
}
int main(){
int i,j,k;
scanf("%d%d",&n,&K);
for(i=1;i<=n;i++)scanf("%d%d",&x[i],&y[i]);
for(i=1;i<=n;i++){
int res=1;
for(j=1;j<=n;j++)if(i!=j)res=1ll*res*(K-x[j])%mod*pw(x[i]-x[j],mod-2)%mod;
Ans=(Ans+1ll*y[i]*res%mod)%mod;
}
printf("%d\n",Ans);
return 0;
}