UVa 674 - Coin Change
题目大意:有5中类型的硬币:1分,5分,10分,25分和50分,现在给你一定数额的金钱n(以分为单位),让你计算有多少中方法可以将这个数额的钱换成硬币,不同次序算同一种,如1,1,5和1,5,1算一种。
硬币兑换问题,经典DP。可以dp[i]保存换i数额的硬币兑换方法数,如果用dp[i] += dp[i-coin]的递推公式的话计算出的是考虑顺序的兑换方法数,所以分五次转移,这样就可以避免重复。理解的不是太清楚,个人感觉就是构造时按照大小顺序先后构造,只考虑1,1,5的方案,不会计算1,5,1和5,1,1这样的方案。
1 #include <cstdio> 2 #include <cstring> 3 #define MAXN 7490 4 5 int dp[MAXN]; 6 const int coin[5] = {1, 5, 10, 25, 50}; 7 8 int main() 9 { 10 #ifdef LOCAL 11 freopen("in", "r", stdin); 12 #endif 13 memset(dp, 0, sizeof(dp)); 14 dp[0] = 1; 15 for (int k = 0; k < 5; k++) 16 for (int i = 1; i < MAXN; i++) 17 if (i >= coin[k]) 18 dp[i] += dp[i-coin[k]]; 19 int n; 20 while (scanf("%d", &n) != EOF) 21 printf("%d\n", dp[n]); 22 return 0; 23 }
View Code
转载于:https://www.cnblogs.com/xiaobaibuhei/p/3284552.html
UVa 674 - Coin Change相关推荐
- uva 674 Coin Change 换钱币【完全背包】
题目链接:https://vjudge.net/contest/59424#problem/A 题目大意: 有5种硬币, 面值分别为1.5.10.25.50,现在给出金额,问可以用多少种方式组成该面值 ...
- UVA 674 Coin Change ,Commence
记忆化搜索,初期.个人感觉从DFS的角度理解DP状态更好一些 #include <map> #include <set> #include <list> #incl ...
- Lightoj 1231 - Coin Change (I) (裸裸的多重背包)
题目链接: Lightoj 1231 - Coin Change (I) 题目描述: 就是有n种硬币,每种硬币有两个属性(价值,数目).问用给定的硬币组成K面值,有多少种方案? 解题思路: 赤果果的 ...
- C++coin change 硬币找零(附完整源码)
coin change 硬币找零 coin change 硬币找零算法的完整源码(定义,实现,main函数测试) coin change 硬币找零算法的完整源码(定义,实现,main函数测试) #in ...
- 利用动态规划(DP)解决 Coin Change 问题
问题来源 这是Hackerrank上的一个比较有意思的问题,详见下面的链接: https://www.hackerrank.com/challenges/ctci-coin-change 问题简述 给 ...
- hdu2069(Coin Change)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Coin Change Time Limit: 1000/1000 MS (Java/Other ...
- LeetCode 518 Coin Change 2 (python)
目录 LeetCode 518 Coin Change 2 (python) Code 欢迎一起来参与leetcode刷题项目 LeetCode 518 Coin Change 2 (python) ...
- Coin Change【硬币找零】
一.题目 英文:Coin Change 中文:硬币找零 二.内容要求 英文:You are given coins of different denominations and a total amo ...
- Coin Change
题目 Suppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and 1-cent. We want to mak ...
- LeetCode Coin Change(动态规划)
问题:给定不同面额的硬币coins和一个总金额amount,求凑成总金额所需的最少硬币个数 思路:第一种方法使用递归法,枚举x使用第coinIndex个硬币的amount/coins[coinInde ...
最新文章
- java uv实例_Java注解的实际应用案例讲解
- 用 Windows API “GetAdaptersInfo” 获取 MAC 时遇到的问题
- get方式乱码及MAC异常
- php中队列控制的方法,学习猿地-php 队列的实现方法
- java 上溯_java中Instrument的上溯造型
- 从豌豆荚百度撕逼中学作文
- AttributeError: module 'socketio' has no attribute 'Server'
- Windows核心编程_静态编译和动态编译的区别
- 基于深度极限学习机DELM的回归预测
- 原生指针auto_ptr的用法
- 无机金属专业里有计算机课吗,无机非金属材料工程专业课程有不少
- java 群发求职邮件
- Ubuntu虚拟机下载(清华大学开源软件镜像源)
- 自定义Unity调色板
- Lightly IDE 使用评测
- HaiBox-E边缘计算盒子怎么样,关于HaiBox-E边缘计算盒子的评析
- Qt编译过程中报错误“multiple definition of ‘‘”
- WordPress总裁CeoMax主题模板源码3.9.1无需授权
- ccf 201612-3 权限查询(100分)
- 【区块链 | Solidity】Solidity开发教程:用Web3.js构建第一个Dapp