中国剩余定理

模板代码:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
#define fi first
#define se second
const ll mod=998244353;
const int N=2e5+10;
#define int ll


int n,m[300],r[300];
int exgcd(int a,int b,int &x,int &y){
	if(b==0){
		x=1,y=0;
		return a;
	}
	int d=exgcd(b,a%b,y,x);
	y-=a/b*x;
	return d;
}
ll crt(ll m[],ll r[]){
	ll M=1,ans=0;
	for(int i=1;i<=n;i++) M*=m[i];
	for(int i=1;i<=n;i++){
		ll c=M/m[i],x,y;
		exgcd(c,m[i],x,y);
		ans=(ans+r[i]*c*x%M)%M;
	}
	return (ans%M+M)%M;
}
void solve(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>m[i]>>r[i];
	}
	cout<<crt(m,r);
}

signed main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int t=1;
    //cin>>t;
	while (t--){
		solve();
	}
	return 0;
}
相关推荐
地平线开发者13 小时前
征程 6E/M|多 camera 场景示例
算法·自动驾驶
源代码•宸13 小时前
Leetcode—721. 账户合并【中等】
c++·经验分享·算法·leetcode·并查集
緈福的街口13 小时前
【leetcode】77.组合
算法·leetcode·职场和发展
NAGNIP13 小时前
深入 vLLM:高性能大模型推理框架解析
算法
JuneXcy13 小时前
字符串(2)
算法
快去睡觉~13 小时前
力扣152:乘积最大子数组
算法·leetcode·职场和发展
程序员Xu13 小时前
【LeetCode热题100道笔记】二叉树的中序遍历
笔记·算法·leetcode
地平线开发者14 小时前
理想汽车智驾方案介绍 4 | World model + 强化学习重建自动驾驶交互环境
算法·自动驾驶
石氏是时试14 小时前
拉格朗日多项式
人工智能·算法·机器学习
二哈不在线14 小时前
代码随想录二刷之“贪心算法”~GO
算法·贪心算法·golang