//问题:求解同余方程组
// x ≡ a1 (mod b1)
// x ≡ a2 (mod b2)
// x ≡ a3 (mod b3)
// ······
// x ≡ an (mod bn)
//其中b1,b2,b3,······ bn 为不一定两两互质的整数,求x的最小非负整数
//模板
#include<bits/stdc++.h>
#define up(i, x, y) for(__int128 i = x; i <= y; i++)
#define down(i, x, y) for(__int128 i = x; i >= y; i--)
#define maxn ((int)1000 + 10)
#define INF 0x3f3f3f3f
using namespace std;
__int128 n, ai[maxn], bi[maxn];// bi存余数
__int128 exgcd(__int128 a, __int128 b, __int128 &x, __int128 &y)
{
if(!b){ x = 1; y = 0; return a;}
__int128 gcd = exgcd(b, a % b, x, y);
__int128 t = x; x = y;
y = t - a / b * y;
return gcd;
}
__int128 excrt()
{
__int128 x, y, k;
__int128 M = bi[1], ans = ai[1];//第一个方程的解特判
for(__int128 i = 2; i <= n; i++)
{
__int128 a = M, b = bi[i], c = (ai[i] - ans % b + b) % b;//ax≡c(mod b)
【模板】中国剩余定理解同余方程(附_int128)
最新推荐文章于 2022-11-01 22:50:30 发布
本文详细介绍了中国剩余定理,并结合_int128类型,探讨了解决同余方程组的方法。通过实例解析,阐述了该理论在模算术中的应用,帮助读者深入理解这一数论概念。
摘要由CSDN通过智能技术生成