51nod 1101 换零钱 完全背包
来源:互联网 发布:当网络写手挣钱吗 编辑:程序博客网 时间:2024/05/22 14:05
N元钱换为零钱,有多少不同的换法?币值包括1 2 5分,1 2 5角,1 2 5 10 20 50 100元。
例如:5分钱换为零钱,有以下4种换法:
1、5个1分
2、1个2分3个1分
3、2个2分1个1分
4、1个5分
(由于结果可能会很大,输出Mod 10^9 + 7的结果)
完全背包,统计个数问题。
就是完全背包的模板,之后用加法,而不是max/min。
对于一个数n,设容量为n,我们选择其它的数进行填充,不限使用次数。并且用加分进行累加!
#include <stdio.h>
#include <cstring>
#include <algorithm>
using namespace std;
#define CLR(a,b) memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
#define LL long long
int m[13] = {1,2,5,10,20,50,100,200,500,1000,2000,5000,10000};
const int mod = 1000000007;
int dp[10000011];
int main()
{
int n;
scanf ("%d",&n);
for (int i = 0 ; i <= n ; i++)
dp[i] = 1;
for (int i = 1 ; i < 13 ; i++)
{
for (int j = m[i] ; j <= n ; j ++)
dp[j] = (dp[j] + dp[j-m[i]]) % mod;
}
printf ("%d\n",dp[n]);
return 0;
}
阅读全文
0 0
- 51nod 1101 换零钱 (完全背包)
- 51nod 1101 换零钱 完全背包
- 【51Nod】1101 - 换零钱(完全背包)
- 51nod oj 1101 换零钱【完全背包】
- 51nod 1101 换零钱 完全背包计数
- 51nod 1101 换零钱 完全背包的变型 动态规划
- 51nod 1101 换零钱 (0-1背包,DP)
- 51nod 1101 换零钱
- 51nod 1101 换零钱
- 51NOD 1101 换零钱
- 51nod 1101 换零钱
- 51Nod 1101 换零钱
- 51nod-1101 换零钱
- 51nod 1101 换零钱
- 51nod 1101 换零钱
- 51nod 1101 换零钱
- 【51nod】1101 换零钱
- 51Nod 换零钱
- 最大子段和(51Nod 1049)、最小正子段和(51Nod 1065)、总结(最小子段和、最大子段和、最小正子段和)
- python学习手册4 知识记录。
- jion
- 欢迎使用CSDN-markdown编辑器
- 浅谈决策树
- 51nod 1101 换零钱 完全背包
- python:利用pandas进行绘图(总结)基础篇
- 嵌入式数据库架构特点
- win10如何修改锁屏(欢迎界面)的用户名
- C/C++中函数参数传递详解
- springboot入门(一)--快速搭建一个springboot框架
- 8-9-函数重载overload
- 哈夫曼编码
- deadLock