zoukankan      html  css  js  c++  java
  • POJ 1061 青蛙的约会

    学长口中恶意到裸题,我就只能呵呵了。主要运用一次运用扩展欧几里德算法,列举学霸教我的一个例子(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;
    }
    
  • 相关阅读:
    CH6201走廊泼水节
    P3366 (模板)最小生成树
    linux 基础语法
    django 3.1 序列化讲述
    django 的基础设计
    django 的初始项目结构
    http
    mysql(一)
    反射型xss
    html(四)
  • 原文地址:https://www.cnblogs.com/DUANZ/p/3862355.html
Copyright © 2011-2022 走看看