𝐶𝑅𝑇:𝐶ℎ𝑖𝑛𝑒𝑠𝑒 𝑅𝑒𝑚𝑎𝑖𝑛𝑑𝑒𝑟 𝑇ℎ𝑒𝑜𝑟𝑒:
今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?(古人都比我们聪明)
因此求形如:
...
的解x?
但能使用CRT的前提是:对于任意 (所有模数互质)
算法流程
1.为所有的乘积
2.对于第个方程式,我们给
因为表示满足为除了i以外所有数的倍数,且
代码:
#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
const int N=15;
typedef long long ll;
ll a[N],b[N];
ll ex_gcd(ll a,ll b,ll &x,ll &y) { //a>b
if(b==0) {
x=1,y=0; return a;
}
ll d=ex_gcd(b,a%b,x,y);
ll xx=x; x=y; y=xx-a/b*y;
}
ll inv(ll a,ll p) {
ll x=1ll,y=0ll;
ll d=ex_gcd(a,p,x,y);
return x;
}
int main() {
int n;
ll m=1ll,ans=0;
scanf("%d",&n);
for(int i=1;i<=n;i++) {
scanf("%lld%lld",&a[i],&b[i]); //模数,余数
m*=a[i];
}
for(int i=1;i<=n;i++) {
ans=(ans+(m/a[i])%m*inv(m/a[i],a[i])%m*b[i]%m)%m; //m/a[i]满足为除了i以外所有数的倍数,且m/a[i]*k=1(mod a[i])
}
printf("%lld",ans>0?ans:ans+m);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人