数论--扩展欧几里得exgcd
算法思想
我们想求得一组\(x,y\)使得
根据
如果我们现在有\(x',y'\) 使得
那么
移项之后
\(ax+by = ay'+b(x'-\lfloor\frac a b\rfloor y')\)
递归求解,当\(b = 0\)时候,\(x = 1,y = 0\);
模板
int exgcd(int a,int b,int &x,int &y)
{
if(b==0)
{
x = 1; y = 0;return a;
}
int x1,y1;
int ans = exgcd(b,a%b,x1,y1);
x = y1;
y = x1-(a/b)*y1;
return ans;
}
例题
https://www.luogu.com.cn/problem/P1082