P1082 同余方程
ext_gcd 求 ax≡1(modb) 。
板子不太好,求出的x不一定是最小的
一个小技巧:x+=b*10000,x%=b;
求出的就是最小正数了
1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 5 6 ll exgcd(ll l,ll r,ll &x,ll &y) 7 { 8 if(r==0){x=1;y=0;return l;} 9 else 10 { 11 ll d=exgcd(r,l%r,y,x); 12 y-=l/r*x; 13 return d; 14 } 15 } 16 17 18 19 int main() 20 { 21 ll a,b;cin>>a>>b; 22 ll x,y;exgcd(a,b,x,y); 23 ll tmp=10000; 24 x+=tmp*b; 25 x%=b; 26 cout <<x<<endl; 27 return 0; 28 }