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;
    }
  • 相关阅读:
    屏蔽docker镜像暴露的端口
    runtime/cgo: pthread_create failed: Resource temporarily unavailable
    用户状态bash-4.2$
    Datasnap 和mORMOT 性能对比!
    Delphi XE 时间和时间戳互转换
    Delphi XE 10.4.2 IDE 设置----【代码格式化】
    DELPHI XE 数据集合并(TFDLocalSQL)
    CXGRID 常用功能设置
    MSSQL行转列
    delphi xe 获取字符串长度(不足补位)
  • 原文地址:https://www.cnblogs.com/liudehao/p/4014492.html
Copyright © 2011-2022 走看看