数论拓展欧几里得,计算mx+ny=d的一组解(m,n为已知)
int xx=x+n/d*i;
int yy=y-m/d*i;//xx,yy分别为其他通解
void extend_gcd(int a,int b,int &x,int &y,int &d)
{
if(!b)
{
x=1;
y=0;
d=a;
return;
}
extend_gcd(b,a%b,x,y,d);
int t=x-a/b*y;
x=y;
y=t;
}