zoukankan      html  css  js  c++  java
  • POJ.1061 青蛙的约会 (拓展欧几里得)

    POJ.1061 青蛙的约会 (拓展欧几里得)

    题意分析

    我们设两只小青蛙每只都跳了X次,由于他们相遇,可以得出他们同余,则有:

    这里写图片描述

    代码总览

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cmath>
    using namespace std;
    typedef long long ll;
    void exgcd(ll a, ll b, ll& d, ll& x, ll &y)
    {
        if(!b){
            d = a,x = 1,y = 0;
        }else{
            exgcd(b, a % b, d, y, x);
            y -= x * (a / b);
        }
    }
    int main()
    {
        //freopen("in.txt","r",stdin);
        ll x,y,n,m,l;
        while(scanf("%I64d %I64d %I64d %I64d %I64d",&x,&y,&m,&n,&l)!= EOF){
            ll a = m-n, b = l, c = y-x, X, Y,gcd;
            exgcd(a,b,gcd,X,Y);
            if(c % gcd ){
                printf("Impossible
    ");
                continue;
            }else{
                ll t = fabs(b/gcd);
                X = X * (c / gcd);
                ll k = X * gcd / b;
                X = X - b / gcd * k;
                if(X <0) X+=t;
                printf("%I64d
    ",X);
            }
        }
        return 0;
    }
    
  • 相关阅读:
    git
    oracle object_id和data_object_id的区别
    statspack系列8
    statspack系列7
    statspack系列6
    statspack系列5
    statspack系列4
    statspack系列3
    statspack系列2
    MySQL源码之两阶段提交
  • 原文地址:https://www.cnblogs.com/pengwill/p/7367083.html
Copyright © 2011-2022 走看看