硬币面值组合问题(完全背包问题)
参考:http://www.cnblogs.com/python27/archive/2013/09/05/3303721.html
i表示只用前i种硬币,sum表示要组合出的面值
下图是当有面值为1,2,5的硬币,要凑出10的dp表
图中dp[2][3]=dp[1][3]+dp[1][1]=2,其中dp[1][3]是第2枚硬币取0的情况;dp[1][1]是第2枚硬币取1的情况,此时还需要凑1分即可。
#include <iostream>
#include <vector>using namespace std;int coinCombinations(const vector<int> &coins, int amount){if(coins.empty()) return 0;vector<vector<int>> dp(coins.size()+1,vector<int>(amount+1));for(int i=0;i<=coins.size();++i)dp[i][0]=1;for(int i=1;i<=coins.size();++i)for(int j=1;j<=amount;++j)for(int k=0;k<=j/coins[i-1];++k)dp[i][j]+=dp[i-1][j-k*coins[i-1]];return dp[coins.size()][amount];
}int main()
{vector<int> coins{ 1,2,5 };int sum = 10;int result = coinCombinations(coins, sum);cout << result << endl;return 0;
}
硬币面值组合问题(完全背包问题)相关推荐
- OpenJudge NOI 2.1 7621:硬币面值组合
[题目链接] OpenJudge NOI 2.1 7621:硬币面值组合 [题目考点] 1. 枚举 2. 输出数字,0占位 在m个字符位置中输出数字n,右对齐,其余部分由0占位: printf(&qu ...
- 硬币面值组合(C++)
硬币面值组合 总时间限制: 1000ms 内存限制: 65536kB 描述 使用1角.2角.5角硬币组成 n 角钱. 设1角.2角.5角的硬币各用了a.b.c个,列出所有可能的a, b, c组合. 输 ...
- 硬币兑换python 每个面值有多个_【算法27】硬币面值组合问题
问题描述 假设我们有8种不同面值的硬币{1,2,5,10,20,50,100,200},用这些硬币组合够成一个给定的数值n.例如n=200,那么一种可能的组合方式为 200 = 3 * 1 + 1*2 ...
- 动态规划之硬币面值组合问题
原文链接:http://www.cnblogs.com/python27/archive/2013/09/05/3303721.html 问题描述 假设我们有8种不同面值的硬币{1,2,5,10,20 ...
- 硬币面值组合(上台阶)
假设我们有8种不同面值的硬币{1,2,5,10,20,50,100,200},用这些硬币组合够成一个给定的数值n.问总过有多少种可能的组合方式? 类似的题目还有: [华为面试题] 1分2分5分的硬币三 ...
- python硬币面值组合_【算法27】硬币面值组合问题
问题描述 假设我们有8种不同面值的硬币{1,2,5,10,20,50,100,200},用这些硬币组合够成一个给定的数值n.例如n=200,那么一种可能的组合方式为 200 = 3 * 1 + 1*2 ...
- 硬币面值组合(C++)(枚举)
总时间限制: 1000ms 内存限制: 65536kB 描述 使用1角.2角.5角硬币组成 n 角钱. 设1角.2角.5角的硬币各用了a.b.c个,列出所有可能的a, b, c组合. 输出顺序 ...
- 硬币面值组合的算法题解
方法一 转自http://www.cnblogs.com/python27/archive/2013/09/05/3303721.html 动态规划的方法,是将m*n(m表示硬币的种类,n表示所要组成 ...
- 7621:硬币面值组合
描述 使用1角.2角.5角硬币组成 n 角钱. 设1角.2角.5角的硬币各用了a.b.c个,列出所有可能的a, b, c组合. 输出顺序为:先按c的值从小到大,若c相同则按b的值从小到大. 输入 一个 ...
最新文章
- Pytorch 中的 5 个非常有用的张量操作
- 这24个高频存储问题,你一定要知道!如何不停机,安全更换数据库?大厂都怎么做MySQL到Redis同步的?...
- 我在谷歌实习时发现了一个模型 bug,于是有了这篇 ACL
- 【SAP-PM模块】服务采购业务流程
- SAP-PM-预防性维护-01-概览
- 利用 sys.sysprocesses 检查 Sql Server的阻塞和死锁
- 使用SMW0上传EXCEL模板遇到的问题
- 金融系统中正确的金额计算及存储方式
- Spring boot Tomcat配置
- 【转】细说.NET中的多线程 (六 使用MemoryBarrier,Volatile进行同步)
- 安装Nginx到linux服务器(Ubuntu)详解
- 创建全局SystemTray.ProgressIndicator
- 格雷码Gray Code详解
- fseek函数与ftell函数使用例程
- book118免费下载文档方法
- angular2--使用JsBarcode生成条形码
- 良好的Coding习惯,从P3C开始--阿里P3C代码规范扫描插件
- 关于ztree的使用
- 07 Anykey图像优化及文字头像生成与加载
- 乐优商城之品牌新增fastDFS(九)