zoukankan      html  css  js  c++  java
  • HDU 2669 Romantic(扩展欧几里德)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2669


    Problem Description
    The Sky is Sprite.
    The Birds is Fly in the Sky.
    The Wind is Wonderful.
    Blew Throw the Trees
    Trees are Shaking, Leaves are Falling.
    Lovers Walk passing, and so are You. 
    ................................Write in English class by yifenfei

     

    Girls are clever and bright. In HDU every girl like math. Every girl like to solve math problem!
    Now tell you two nonnegative integer a and b. Find the nonnegative integer X and integer Y to satisfy X*a + Y*b = 1. If no such answer print "sorry" instead.
     

    Input
    The input contains multiple test cases.
    Each case two nonnegative integer a,b (0<a, b<=2^31)
     

    Output
    output nonnegative integer X and integer Y, if there are more answers than the X smaller one will be choosed. If no answer put "sorry" instead. 
     

    Sample Input
    77 51 10 44 34 79
     

    Sample Output
    2 -3 sorry 7 -3
     

    Author
    yifenfei
     

    Source

    PS:

    扩展欧几里德模板题。

    附:扩展欧几里德解说:http://blog.csdn.net/u012860063/article/details/39760003

    代码例如以下:

    #include <cstdio>
    #include <cstring>
    #include <cmath>
    typedef __int64 LL;
    
    LL exgcd(LL a,LL b,LL &x,LL &y)
    {
        if(b == 0)
        {
            x = 1;
            y = 0;
            return a;
        }
        LL r = exgcd(b,a%b,x,y);
        LL t = x;
        x = y;
        y = t-a/b*y;
        return r;
    }
    
    int main()
    {
        LL a,b,x,y;
        while(scanf("%I64d%I64d",&a,&b)!=EOF)
        {
            LL d = exgcd(a,b,x,y);
            if(1%d)//不能整除
                printf("sorry
    ");
            else
            {
                while(x<0)
                    x+=b,y-=a;
                printf("%I64d %I64d
    ",x,y);
            }
        }
        return 0;
    }
    


  • 相关阅读:
    区间树
    最大流
    单源最短路径
    散列表
    最小生成树
    软件体系结构2
    软件体系结构
    Leetcode 687.最长同值路径
    Leetcode 686.重复叠加字符串匹配
    Python测试框架
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7070968.html
Copyright © 2011-2022 走看看