社区讨论

求助重心拉格朗日插值

学术版参与者 1已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mjdwwbyu
此快照首次捕获于
2025/12/20 14:23
2 个月前
此快照最后确认于
2025/12/22 12:35
2 个月前
查看原帖
在模数为 1e9 级别会去死,不知道为啥。
CPP
#define int long long
struct Murasame{
int n,x[220],y[220],w[220];
void operator ()(){
	n=0;
}
int operator ()(int X){
	int up=0,dw=0;
	for(int i=1;i<=n;i++){
		if(x[i]==X) return y[i];
		up=(up+w[i]*inv(X-x[i])%mod)%mod;
		dw=(dw+w[i]*inv(X-x[i])%mod*inv(y[i])%mod)%mod;
	}
	return (up*inv(dw)%mod+mod)%mod;
}
void operator ()(int fi,int se){
	x[++n]=fi;
	y[  n]=se;
}
void init(){
	for(int i=1;i<=n;i++){
		int up=y[i],dw=1;
		for(int j=1;j<=n;j++){
			if(j==i) continue;
			dw=dw*(x[i]-x[j])%mod;
		}
		w[i]=(up*inv(dw)%mod+mod)%mod;
	}
}
};

回复

1 条回复,欢迎继续交流。

正在加载回复...