hdu 2669 Romantic(扩展欧几里得)

这题基本就是一个裸的拓展欧几里得算法,欧几里得不会的推荐一个大佬的博客:大佬博客

然后这个题就很裸了

代码如下

#include<cstdio>
#include<iostream>
using namespace std;
typedef long long ll;
ll exgcd(ll m,ll n,ll &x,ll &y)
{
    ll x1,y1,x0,y0;
    x0=1; y0=0;
    x1=0; y1=1;
    x=0; y=1;
    ll r=m%n;
    ll q=(m-r)/n;
    while(r)
    {
        x=x0-q*x1; y=y0-q*y1;
        x0=x1; y0=y1;
        x1=x; y1=y;
        m=n; n=r; r=m%n;
        q=(m-r)/n;
    }
    return n;
}
int main()
{
    ll x,y,a,b;
    while(cin>>a>>b)
    {
        ll ans=exgcd(a,b,x,y);
        if(ans!=1)
        cout<<"sorry"<<endl;
        else {
            while(x<0)
            {
                x+=b;
                y-=a;
            }
            cout<<x<<" "<<y<<endl;
        }
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/tp25959/p/10310114.html