链接1:https://blog.youkuaiyun.com/qiqijianglu/article/details/8039245
链接2:https://blog.youkuaiyun.com/tomorrowtodie/article/details/51865496
扩展欧几里得&&中国剩余定理
1,扩展欧几里得算法
已知(a,b),求一组(x,y),使得ax+by=gdc(a,b),且作为欧几里得算法的扩展能够求出gcd(a,b).
int extended_gcd(int a,int b,int &x,int &y)
{
int ret,tmp;
if(!b)
{
x=1;y=0;//特殊情况下的一组解
return a;
}
ret=extended_gcd(b,a%b,x,y);
tmp=x;
x=y;
y=tmp-a/b*y;//最终的x y方程的一组通解
return ret;//最终的ret是a b的最大公约数
}
2,最小逆元
已知(a,b),求一组(x,y),使得ax+by=1
typedef long long ll;
ll e_gcd (ll a, ll b, ll& x, ll& y)
{
if (b == 0)
{
x = 1, y = 0;
return a;
}
ll ans = e_gcd (b, a % b, y, x);