zoukankan      html  css  js  c++  java
  • HDU 2069 Coin Change

    解题报告:

    题目大意:输入一个数,表示要将这么多的钱换成面值为50、25、10、5、1的钱,问一共有多少种换法。

    虽然说这题是水题,但我一开始没有注意题目竟然说了所有钱币的总数不超过100个,所以一直不是TLE就WA,而看了discuss之后才发现原来还有这个要求。这就好做多了,

    可以直接用暴力,就是枚举每种钱币有0到n除以相应的面值的个数。但我觉得这题可以用dfs做,那在时间上会更快,但我没写出来。

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 int main() {
     5     int coin;
     6     while(scanf("%d",&coin)!=EOF) {
     7         __int64 sum=0;
     8         for(int i=0;i<=coin/50;++i)
     9         for(int j=0;j<=coin/25&&j<=100;++j)
    10         for(int k=0;k<=coin/10&&k<=100;++k)
    11         for(int x=0;x<=coin/5&&x<=100;++x)
    12         for(int y=0;y<=coin&&y<=100;++y)
    13         if((50*i+25*j+10*k+5*x+y)==coin&&(i+j+k+x+y)<=100)
    14         sum++;
    15         printf("%I64d\n",sum);
    16     }
    17     return 0;
    18 }
    View Code
  • 相关阅读:
    全内存的redis用习惯了?那能突破内存限制类redis产品ssdb呢?
    multi_compile
    MVVM
    Gamma Correction
    Animator状态快速切换问题
    SVN 不显示状态图标--解决方法
    Rendering with Replaced Shaders
    MySql权威指南
    Effective C++
    帧同步
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3087253.html
Copyright © 2011-2022 走看看