中国剩余定理

模板代码:

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;
}
相关推荐
CarIise1 小时前
C语言结构体与链表
数据结构·算法
晚风醉蝶1 小时前
1-18-基数排序-RadixSort
python·算法·排序算法·基数排序
lch2011_yb2 小时前
CSP-J 2022 上升点列 题解
算法·深度优先
lvts_cs2 小时前
化工产业规划对城市发展的具体指导作用
算法·动态规划
AI服务老曹2 小时前
水位识别算法接入AI视频分析平台全流程与误报优化指南(附接口字段与排查表)
人工智能·算法·音视频
江畔柳前堤2 小时前
消息队列:从直觉到精通的完整认知地图
开发语言·人工智能·算法·机器学习·ruby on rails·scala
ai产品老杨3 小时前
明火识别算法接入AI视频分析平台全流程与误报优化指南(附接口字段与排查表)
人工智能·算法·音视频
讨厌吃蛋黄酥3 小时前
📚408数据结构|最短路径算法一篇彻底搞懂!BFS、Dijkstra、Floyd别再傻傻分不清了
算法
Escalating_xu3 小时前
【C++ string 上篇】从字符串基础到容量管理、迭代器与经典算法题
java·c++·算法
Keven_114 小时前
算法札记:ACM中将高精度算法融于题目的模板
算法·acm·精度