先推荐我看到的一篇博客:链接:个人理解---扩展欧几里德定理 - 西瓜不懂柠檬的酸 - 博客园 http://www.cnblogs.com/zhengguiping--9876/p/5308276.html
建议先看下面的,在看上面的博客。
我们的学长给的:
贝祖等式:
c=gcd(a,b)
当d为c的倍数时
ax+by=d恒有整数解
所有解中,有且仅有一个解(x,y)满足且-b<=x<=b,-a<=y<=a
扩展欧几里得算法:
在求c=gcd(a,b)时,同时求出贝祖等式:ax+by=c的一个整数解(所以扩欧有五个参数)
原理演示:
求18x+5y=1的解
18%5=3,18=5*3+3,3=18+5*(-3)
5%3=2,5=3*1+2,2=5+3*(-1)
3%2=1,3=2*1+1,1=3+2*(-1)
然后从下向上进行处理
1=3+2*(-1)
1=3+(5+3*(-1))*(-1) (代入第二个式子)
=3*2+5*(-1)
1=(18+5*(-3))*2+5*(-1)(代入第一个式子)
=18*2+5*(-7)
则(2,-7)为一个解
建议自己选几个数据算一算
ll exgcd(ll a,ll b,ll& d,ll& x,ll& y)
{
if(!b){d=a,x=1,y=0;}
else
{
exgcd(b,a%b,d,y,x);
y-=x*(a/b);
}
}