码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 1061 青蛙的约会

时间:2014-07-23 12:36:46      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:blog   os   io   re   c   div   

学长口中恶意到裸题,我就只能呵呵了。主要运用一次运用扩展欧几里德算法,列举学霸教我的一个例子(6x+12y = 6的解为x =1,y = 0;所以6x1+12y1=12的解为x1/2 = x,y2/2 = y);除此之外还要在impossible的时候注意判定。

#include<iostream>
using namespace std;

void ex_gcd(long long a,long long b,long long& d,long long& x,long long& y)
{
    if(b==0){d=a;x=1;y=0;}
    else{ex_gcd(b,a%b,d,y,x);y-=x*(a/b);}
}

int main()
{
    long long x,y,m,n,L,s =0,k =0;
    cin >> x>> y>> m>> n>> L;
    long long mn = m-n;
    long long xy = x-y;
    long long yx;
    if(m>n)
    {
        xy = (y-x+L)%L;
        yx = y-x;
    }
    else
    {
        xy = (x-y+L)%L;
        mn = n-m;
        yx= x-y;
    }

    ex_gcd(mn,-L,xy,s,k);
    if((x-y)%xy !=0)
    {
        cout<< "Impossible" << endl;
    }
    else
    {
        long long t = s*(yx)/xy;
        t = t%L;
        if(t < 0) t+=L;
        cout<< t << endl;
    }
    return 0;
}

POJ 1061 青蛙的约会,布布扣,bubuko.com

POJ 1061 青蛙的约会

标签:blog   os   io   re   c   div   

原文地址:http://www.cnblogs.com/DUANZ/p/3862355.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!