zoukankan      html  css  js  c++  java
  • HDU-1495-非常可乐

    题目链接 

    http://acm.hdu.edu.cn/showproblem.php?pid=1495

    这题搞不出,看了一位牛逼的人的代码思路

    两个杯子按大小排序,为S>M>N,

     
    1.只要n满了,就把n里的东西放到s中
     
    2.只要m非空,就把m中的放到n中
     
    3.如果m为空,把s中的放到m中。
     
    -----------------------------------------------------------------------------------------------------------------
     
    //平分可乐的问题
    //一桶可乐S升,两个杯子M和N升,
    //平分所需的最小次数
     
     
    #include<stdio.h>
     
    int s;
    int a;
    int b;
    int ss;
    int aa;
    int bb;
    int num;
     
    int main()
    {
        while(scanf("%d%d%d",&s,&a,&b)==3&&(s+a+b))
        {
            if(a<b)
            a=a^b^(b=a);
            ss=s;
            aa=0;
            bb=0;
            num=0;
            while(1)
            {
                if(ss==b && aa==a && num>1)//出现了死循环
                {
                    printf("NO ");
                    break;
                }
                if(ss==aa && bb==0)
                {
                    printf("%d ",num);
                    break;
                }
                if(bb==b)
                {
                    ss+=b;
                    bb=0;
                    num++;
                    continue;
                }
                if(aa>0 && aa<=a)
                {
                    if(aa+bb>b)
                    {
                        aa=aa+bb-b;
                        bb=b;
                    }
                    else if(aa+bb<=b)
                    {
                        bb+=aa;
                        aa=0;
                    }
                    num++;
                }
                else if(aa==0||aa>a)
                {
                    if(ss>=a)
                    {
                        ss-=a;
                        aa=a;
                    }
                    else
                    {
                        aa=ss;
                        ss=0;
                    }
                    num++;
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    准备学习FLEX目前心理状态篇
    Jeffrey Richter 大师 ,这次交流收获不少。
    Scrum框架 转贴
    换工作中......
    以后多参加些论坛,交流交流思想。
    机会在哪?
    2011年要比2010年更加努力!!!
    2012,处理考验我的一年,2013,继续学习快速成长的一年
    终于买了iPad,激动。。。。
    CSP认证
  • 原文地址:https://www.cnblogs.com/liudehao/p/4014492.html
Copyright © 2011-2022 走看看