动态规划:硬币凑值
来源:互联网 发布:mac怎么删除应用程序 编辑:程序博客网 时间:2024/04/27 14:31
硬币凑值
题目大意:给出n个硬币以及面值,求凑出面值为m所需要最少的硬币是多少
解题思路: 假设有面值1 3 5,从凑0个硬币开始想,d(0) = 0;再想d(1) = d(1-1)+1 = 1;d(2) = d(2-1) + 1 = 2;
d(3) = min(d(3-1)+1,d(3-3)+1) = 1;
所以d(i) = min(d(i-y(x))+1) y(x)访问全部面值硬币
#include <iostream>#include <cstdio>#include <cstring>using namespace std;int d[100];int n; //一共n种硬币int y[100]; //硬币面值int m; //要凑的面值int w(int x) { int re = -1; for(int i = 0; i < n; i++) { if(d[x-y[i]] == -1 || x - y[i] < 0) continue; if(re == -1 || d[x-y[i]] + 1 < re) re = d[x-y[i]] + 1; } return re;}int main() { memset(d, 0, sizeof(d)); cin >> m; cin >> n; for(int i = 0; i < n; i++) cin >> y[i]; for(int i = 1; i <= m; i++) d[i] = w(i); if(d[m] == -1) cout << "凑不出"; else cout << d[m]; return 0;}
阅读全文
0 0
- 动态规划:硬币凑值
- 【动态规划】凑硬币
- 动态规划凑硬币
- 动态规划 凑硬币
- 动态规划--凑硬币问题
- 《凑硬币》 动态规划算法入门
- 动态规划之硬币凑单
- 动态规划02—凑硬币
- 动态规划--凑硬币 C++实现
- 硬币配凑-动态规划-无
- 动态规划:凑硬币(中级:动态规划思想体会)
- 动态规划之硬币
- 动态规划----硬币问题
- 动态规划-最少硬币
- 动态规划-硬币问题
- 动态规划-硬币问题
- 动态规划:分硬币
- 动态规划-硬币问题
- Android Base64Encoder
- VB.net计算二维数组的行列式
- Python数据分析——基于CART决策树的用户识别
- jQuery页面加载初始化的3种方法
- Atcoder ARC 077 D
- 动态规划:硬币凑值
- 常用正则表达式大全
- Android 数据压缩
- Hive1.2.1<UDF与UDAF>
- hdu 1253 胜利大逃亡(三维bfs+剪枝)
- C++实现vector
- Java数组详谈——从内存角度解析数组
- POJ 2530 Tetris Alphabet 笔记
- B