求助30分悬一关
查看原帖
求助30分悬一关
647952
JackHu0117楼主2023/11/28 21:56
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=998244353;
int n,k;
int x[10010],y[10010];
int qpow(int a,int b){
    int sum=1;
    while(b){
        if(b%2!=0) sum=((sum%mod)*(a%mod))%mod;
        a*=a%mod;a%=mod;
        b/=2;      
    }
    return sum;
}
int ans=0;
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>x[i]>>y[i];
	}
	for(int i=1;i<=n;i++){
		int fz=1,fm=1;
		for(int j=1;j<=n;j++){
			if(i==j) continue;
			fz=(fz%mod*(k%mod-x[j]%mod)%mod)%mod;//即式子中k-x_j处
			fm=(fm%mod*(x[i]%mod-x[j]%mod)%mod)%mod;//即x_i-x_j处
		}
		ans=(ans%mod+(y[i]%mod*qpow(fm,mod-2)%mod*fz%mod)%mod)%mod;//即sum处
	}
	cout<<ans<<endl;
	return 0;
}
2023/11/28 21:56
加载中...