• hdu1353 小暴力


    题意:
          题意是给你一个数,然后你有0.25,0.1,0.05,0.01的四种面额若干,让你求出最小的钱币纸张。

    思路:

          对于这种题目要自己观察两样东西,一个是四种面额之间的关系,两一个就是数据范围,这个题目虽然说每个面额最多100张,但是自己算算根本不会全都达到这个数目,最大的总金额是5元=20*0.25=50*0.1,说到这懂了吧,直接暴力就行了,对于这样的题目,如果总金额不是5元,是更大的数怎么办呢?之前见过一个暴力过不去的,但是他给的四个货币是 10 5 1 0.1 这四个,前面的是后面的任意一个的整数倍,这样的我们可以直接贪心去弄,如果是求最小就从大到小,能用就用,如果是求最多货币,那么还是从大到小,能不用就不用。

    #include<stdio.h>
    
    int main ()
    {
        int a ,b ,c ,d ,aa ,bb ,cc ,dd ,min;
        double num;
        while(~scanf("%lf %d %d %d %d" ,&num ,&a ,&b ,&c ,&d))
        {
            int t = int(num / 0.25 + 1);
            if(a > t) a = t;
            t = int(num/0.1 + 1);
            if(b > t) b = t;
            aa = bb = cc = dd = -1;
            min = 1000000000;
            for(int i = 0 ;i <= d && aa == -1;i ++)
            for(int j = 0 ;j <= c && aa == -1;j ++)
            for(int k = 0 ;k <= b && aa == -1;k ++)
            for(int w = 0 ;w <= a && aa == -1;w ++)
            {
               if(i * 0.01 + j * 0.05 + k * 0.1 + w * 0.25 == num)
               {
                  if(min > i + j + k + w)
                  {
                     min = i + j + k + w;
                     aa = w ,bb = k ,cc = j ,dd = i;
                  }
               }
            }
            aa == -1 ? puts("NO EXACT CHANGE"):printf("%d %d %d %d
    " ,aa ,bb ,cc ,dd);
        }
        return 0;
    }
                    

  • 相关阅读:
    BZOJ 1051: [HAOI2006]受欢迎的牛( tarjan )
    BZOJ 2208: [Jsoi2010]连通数( DFS )
    js效果-鼠标提示框
    CSS-背景
    CSS-文本
    tomcat 安装 for Mac
    CSS选择器基础
    POJ3349-Snowflake Snow Snowflakes-Hash
    数据库的三大设计范式
    HDU5120-Intersection-两个圆环相交面积
  • 原文地址:https://www.cnblogs.com/csnd/p/12062833.html
Copyright © 2020-2023  润新知