zoukankan      html  css  js  c++  java
  • Jams倒酒(pour)

    1Jams倒酒(pour)

    Jams是一家酒吧的老板,他的酒吧提供2种体积的啤酒,a ml 和 b ml,分别使用容积为a ml 和 b ml的酒杯来装载。

    酒吧的生意并不好。Jams发现酒鬼们都很穷,不像他那么土豪。有时,他们会因为负担不起a ml 或者 b ml酒的消费,而不得不离去。因此,Jams决定出手第三种体积的啤酒(较小体积的啤酒)。

    Jams只有两种杯子,容积分别为 a ml 和 b ml,而且啤酒杯是没有刻度的。他只能通过两种杯子和酒桶间的互相倾倒来得到新的体积的酒。

    倒酒步骤为:

    (1)            规定a>=b

    (2)            酒桶容积无限,酒桶中酒体积无限大。

    (3)            只能包含三种可能的倒酒操作:

    1、 将酒桶中的酒倒入容积为b ml的酒杯中;

    2、 将容积为a ml的酒杯中的酒倒入酒桶;

    3、 将容积为b ml的酒杯中的酒倒入容积为 a ml的酒杯中。

    (4)            每次倒酒必须把杯子倒满或者把被倾倒的杯子倒空。

    Jams希望通过若干次倾倒得到容积为 a ml酒杯中剩下的就体积尽可能小,他请求你帮助他设计倾倒方案。

    输入:

       两个整数a,b(0<b<=a<=10^9)

    输出

       第一行一个整数,表示可以得到的最小体积的酒。

       第二行两个整数Pa和Pb(中间用一个空格分开),分别表示从体积为a ml的酒杯中到处酒的次数和将酒倒入体积为b ml的酒杯的次数。

       若有多种可能的Pa,Pb满足要求,那么请输出Pa最小的。若Pa最小的时候有多个Pb,那么输出Pb最小的。

    样例输入

    5 3

    样例输出

    1

    1 2

    倾倒方案为:

    1、 桶->B;

    2、 B->A;

    3、 桶->B;

    4、 B->A;

    5、 A->桶;

    6、 B->A;

    对于20%的数据,pa,pb总和不超过5

    对于60%的数据,pa<=10^8

    对于100%的数据,0<b<=a<=10^9

    【题目分析】

      gcd,exgcd

      数据类型(long long

      啊啊啊啊

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    using namespace std;
    #define ll long long//!!!!
    ll a,b;
    ll minn;
    ll xx,yy; 
    ll gcd(ll x,ll y)
    {
        if(y==0) return x;
        else return gcd(y,x%y);
    }
    void exgcd(ll x,ll y)
    {
        if(y==0) 
        {
            xx=1;
            yy=0;
            return ;
        }
        else
        {
            exgcd(y,x%y);
            ll t=xx;
            xx=yy;
            yy=t-x/y*yy;
        }
    }
    int main()
    {
        freopen("pour.in","r",stdin);
        freopen("pour.out","w",stdout);
        cin>>a>>b;
        minn=gcd(a,b);
        cout<<minn<<endl;
        a/=minn;b/=minn;
        exgcd(a,b);
        while(yy<0) yy+=a;
        xx=(1-yy*b)/a;
        cout<<-xx<<" "<<yy;
        fclose(stdin);fclose(stdout);
        return 0;
    }
  • 相关阅读:
    quartz 中JobExecutionContext的使用
    Memcached 集群架构方面的问题
    Spring+Quartz 集群
    Spring Quartz 持久化解决方案
    不同版本(2.3,2.4,2.5) web.xml 的web-app头信息
    Spring Framework 4.0.0发布,首次支持Java 8
    Serializable java序列化
    Quartz 有状态的JobDataMap
    JobDataMap 不能被序列化如何解决研究中
    Spring-3.2.5 + Quartz-2.2.1 集群实例(Tomcat+Memcached+Quartz集群session共享)
  • 原文地址:https://www.cnblogs.com/xiaoningmeng/p/5994703.html
Copyright © 2011-2022 走看看