//返回d=gcd(a,b);
//返回的x和y即为ax+by=d中x和y的解
ll exgcd(ll a,ll b,ll &x,ll &y){
if(a==0&&b==0) return -1;//无最大公约数
if(b==0){x=1;y=0;return a;}
ll d=exgcd(b,a%b,y,x);
y-=a/b*x;
return d;
}
如果要求二元一次方程ax+by=c的多组解x1和y1
先求出ax+by=gcd(a,b)的解x0和y0(代码中的返回值x,y即是答案)
x1=x0+b/gcd(a,b)*t y1=y0+a/gcd(a,b)*t (t为整数,正负皆可)