• POJ 1061 青蛙的约会(扩展GCD求模线性方程)


    题目地址:POJ 1061

    扩展GCD好难懂。。

    看了半天。最终把证明什么的都看明确了。

    。推荐一篇博客吧(戳这里),讲的真心不错。。

    直接上代码:

    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <cstring>
    #include <stdlib.h>
    #include <math.h>
    #include <ctype.h>
    #include <queue>
    #include <map>
    #include <set>
    #include <algorithm>
    
    using namespace std;
    #define LL __int64
    LL X, Y;
    LL exgcd(LL a, LL b)
    {
        if(b==0)
        {
            X=1;
            Y=0;
            return a;
        }
        LL r=exgcd(b,a%b);
        LL t=X;
        X=Y;
        Y=t-a/b*Y;
        return r;
    }
    int main()
    {
        LL x, y, m, n, l, L, d;
        while(scanf("%I64d%I64d%I64d%I64d%I64d",&x,&y,&m,&n,&l)!=EOF)
        {
            if(m>n)
            {
                d=exgcd(m-n,l);
                L=y-x;
            }
            else
            {
                d=exgcd(n-m,l);
                L=x-y;
            }
            //printf("%I64d  %I64d
    ", X, Y);
            if(m==n||L%d)
            {
                printf("Impossible
    ");
                continue ;
            }
            LL ans=X*L/d;
            LL s=l/d;
            //printf("%I64d  %I64d  %I64d
    ",X, ans,s);
            if(ans<=0)
                ans=ans%s+s;
            else
                ans=ans%s;
            printf("%I64d
    ",ans);
        }
        return 0;
    }
    


  • 相关阅读:
    工厂方法
    简单工厂
    单例模式
    MVC中Cookies的简单读写操作
    windows服务开启(收藏url)
    WCF的三种模式
    SvcUtil.exe导入WCF
    简述wcf应用
    sql的几种常用锁简述
    Lucene.Net和盘古分词应用
  • 原文地址:https://www.cnblogs.com/lytwajue/p/6884738.html
Copyright © 2020-2023  润新知