扩展欧几里德模板
扩展欧几里德算法
用来在已知a,b求解一组x,y使得a*x+b*y=gcd(a,b)(解一定存在,根据数论中的相关定理)
扩展欧几里德常用在求解模线性方程及方程组中
模板:
LL exgcd(LL a,LL b,LL &x, LL &y) { if(b==0) { x=1; y=0; return a; } LL r=exgcd(b,a%b,x,y); LL t=x; x=y; y=t-a/b*y; return r; }
不定方程的通解:
若(x0,y0)是不定整数方程ax+by = c的一组解,则他的任意整数解都可以表示成(x0+ kb’, y0-ka’),其中a’ = a/gcd(a,b), b’ = b/gcd(a,b).