题意:给你5种银币,50 25 10 5 1,问你可以拼成x的所有可能情况个数,注意总个数不超过100个

组合数问题,一看就是完全背包问题,关键就是总数不超过100个。所有我们开二维dp[k][j],表示使用k个硬币组成j的价值所有个数

接着就是直接使用完全背包,而且枚举硬币个数就只需要一次枚举1到100就好了

  1. #include<set>
  2. #include<map>
  3. #include<queue>
  4. #include<stack>
  5. #include<cmath>
  6. #include<vector>
  7. #include<string>
  8. #include<cstdio>
  9. #include<cstring>
  10. #include<iomanip>
  11. #include<stdlib.h>
  12. #include<iostream>
  13. #include<algorithm>
  14. using namespace std;
  15. #define eps 1E-8
  16. /*注意可能会有输出-0.000*/
  17. #define Sgn(x) (x<-eps? -1 :x<eps? 0:1)//x为两个浮点数差的比较,注意返回整型
  18. #define Cvs(x) (x > 0.0 ? x+eps : x-eps)//浮点数转化
  19. #define zero(x) (((x)>0?(x):-(x))<eps)//判断是否等于0
  20. #define mul(a,b) (a<<b)
  21. #define dir(a,b) (a>>b)
  22. typedef long long ll;
  23. typedef unsigned long long ull;
  24. const int Inf=<<;
  25. const ll INF=1ll<<;
  26. const double Pi=acos(-1.0);
  27. const int Mod=1e9+;
  28. const int Max=;
  29. int dp[Max][Max],val[Max],vol[Max];
  30. ll Pack(int n)
  31. {
  32. for(int i=; i<; ++i)
  33. for(int j=; j<=n; ++j)
  34. dp[i][j]=;
  35. dp[][]=;
  36. val[]=,val[]=,val[]=,val[]=,val[]=;
  37. for(int i=; i<; ++i)
  38. {
  39. for(int j=; j<=n; ++j)
  40. {
  41. for(int k=; k<; ++k)
  42. {
  43. if(j-val[i]>=)
  44. dp[k][j]+=dp[k-][j-val[i]];
  45. }
  46. }
  47. }
  48. int sum=;
  49. for(int i=; i<=; ++i)
  50. sum+=dp[i][n];
  51. return sum;
  52. }
  53. int main()
  54. {
  55. std::ios::sync_with_stdio(false);
  56. int t,n,m;
  57. //cin >> n;
  58. while(cin >> n)
  59. {
  60. cout << Pack(n) << endl;
  61. }
  62. return ;
  63. }

HDU 2069 Coin Change(完全背包变种)的更多相关文章

  1. hdu 2069 Coin Change(完全背包)

    Coin Change Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  2. HDU 2069 Coin Change

    Coin Change Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...

  3. 题解报告:hdu 2069 Coin Change(暴力orDP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Problem Description Suppose there are 5 types of ...

  4. HDOJ 2069 Coin Change(母函数)

    Coin Change Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  5. uva674 Coin Change ——完全背包

    link:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  6. Light oj 1233 - Coin Change (III) (背包优化)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1233 题目就不说明了. 背包的二进制优化,比如10可以表示为1 2 4 3,而 ...

  7. hdu2069(Coin Change)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Coin Change Time Limit: 1000/1000 MS (Java/Other ...

  8. UVA.674 Coin Change (DP 完全背包)

    UVA.674 Coin Change (DP) 题意分析 有5种硬币, 面值分别为1.5.10.25.50,现在给出金额,问可以用多少种方式组成该面值. 每种硬币的数量是无限的.典型完全背包. 状态 ...

  9. Lightoj 1231 - Coin Change (I) (裸裸的多重背包)

    题目链接: Lightoj  1231 - Coin Change (I) 题目描述: 就是有n种硬币,每种硬币有两个属性(价值,数目).问用给定的硬币组成K面值,有多少种方案? 解题思路: 赤果果的 ...

随机推荐

  1. SSH--1

    package com.etc.action; import java.io.IOException; import java.io.PrintWriter; import java.util.Has ...

  2. WebService如何调试及测试工具

    http://www.cnblogs.com/zfanlong1314/archive/2012/04/06/2434788.html 通常,我们在Visual Studio里调试ASP.NET网站, ...

  3. jedis池的作用

    一.jedis池的介绍 相信大家都用过线程池或者是jdbc的连接池,使用池可以减少系统在使用所需对象时创建对象的开销,从而提高系统性能和效率.jedis池也是如此,那么我们该如何使用jedis池呢? ...

  4. nltk27_NLTK聚类分析

    http://www.pythontip.com/blog/post/10044/ Python自然语言处理(三) -- 利用NLTK进行聚类 这篇文章介绍如何利用NLTK进行聚类,和上两篇文章Pyt ...

  5. ASP.NET中使用JqGrid完整实现

    文章提纲 介绍 & 使用场景 JqGrid的一些说明 JqGrid和ASP.NET整合详细步骤 前置准备 框架搭建 数据填充 数据增/删/改 其他 介绍&使用场景 JqGrid不是一个 ...

  6. Linux下php安装Redis扩展

    说明: 操作系统:CentOS php安装目录:/usr/local/php php.ini配置文件路径:/usr/local/php7/etc/php.ini Nginx安装目录:/usr/loca ...

  7. 高版本api在低版本中的兼容

    直接上例子,看如何避免crash. eg:根据给出路径,获取此路径所在分区的总空间大小. 文档说明:获取文件系统用量情况,在API level 9及其以上的系统,可直接调用File对象的相关方法,以下 ...

  8. 微信5.4安卓版重回ios风格 导航菜单都放底栏位置

    微信5.4安卓版发布更新了,由于本人的手机设置软件自动更新,中午的时候才发现微信换成了5.4版本,启动微信后是一个大大的“转账,就是发消息”,进入微信界面有点小惊喜,导航菜单都改为底部tab方式,顶部 ...

  9. PHP之static静态变量详解(一)

    什么是static静态变量?(以下为在C语言中的理解) 静态变量 类型说明符是static. 静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该 区域中的数据在 ...

  10. Vundle的安装

    1.Vundle.vim 安装 https://github.com/VundleVim/Vundle.vim 2.插件安装https://github.com/yangyangwithgnu/use ...