(动态规划)6049:买书

描述

小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。

问小明有多少种买书方案?(每种书可购买多本)

输入

一个整数 n,代表总共钱数。(0 <= n <= 1000)

输出

一个整数,代表选择方案种类

样例输入

样例输入1:20

样例输入2:15

样例输入3:0

样例输出

样例输出1:2

样例输出2:0

样例输出3:0

我の代码

#include <iostream>
int pri[5];
int dp[1001];
using namespace std;

int main()
{
    int n;
    pri[1]=10;
    pri[2]=20;
    pri[3]=50;
    pri[4]=100;
    dp[0]=1;
    cin>>n;
        for(int i=1;i<=4;i++){
            for(int j=0;j<=n;j++){
                if(j-pri[i]>=0)
                    dp[j] += dp[j-pri[i]];
            }
        }

        cout<<dp[n]<<endl;
    return 0;
}
 
时间: 2024-12-25 21:37:43

(动态规划)6049:买书的相关文章

6049:买书 (完全背包)

[题目描述] 小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元. 问小明有多少种买书方案? [题目链接] http://noi.openjudge.cn/ch0206/6049/ [代码] 1 #include <bits/stdc++.h> 2 using namespace std; 3 int n,i,j; 4 int dp[1010],a[5]={0,10,20,50,100}; 5 int main() 6 { 7 scanf("%d",&

js算法:动态规划-金矿模型与买书问题(附js源码)

本文内容介绍转自博客:通过金矿模型介绍动态规划,后面附上我自己实现的js代码: 经典的01背包问题是这样的: 有一个包和n个物品,包的容量为m,每个物品都有各自的体积和价值,问当从这n个物品中选择多个物品放在包里而物品体积总数不超过包的容量m时,能够得到的最大价值是多少?[对于每个物品不可以取多次,最多只能取一次,之所以叫做01背包,0表示不取,1表示取] 为了用一种生动又更形象的方式来讲解此题,我把此题用另一种方式来描述,如下: 有一个国家,所有的国民都非常老实憨厚,某天他们在自己的国家发现了

动态规划——买书问题

转载自CSDN 朱超迪,链接:http://blog.csdn.net/q623702748/article/details/51592427 在朱超迪的原代码上做了一些修改 问题描述:         在节假日的时候,书店一般都会做促销活动.由于<哈利波特>系列相当畅销,店长决定通过促销活动来回馈读者.上柜的<哈利波特>平装本系列中,一共有五卷.假设每一卷单独销售均需8欧元.如果读者一次购买不同的两卷,就可以扣除5%的费用,三卷则更多.假设具体折扣的情况如下: 本数     折扣

编程之美之买书问题

拿到这个问题,我的第一反应是用贪心算法,优先满足不同种类多的,这样打的折扣比价多.但是,看了书中的分析发现,* 我们设定的贪心策略实际上是有问题的, ie 在买 5 + 3 本的时候会出错. 看到这里,书上说可以利用改进的贪心算法,感觉如果换了相应的折扣数量,可能又会有不同的结果了.因而,没有深入的研究下去. 既然,贪心算法不可行,那就用动态规划呗. 这里的动态规划思路很简单不过写起来有些复杂.我们这里用到了5维数组, 光是init 就写了好多. 其实我在写的时候,就在想有什么简单一点的方法可以

最少的钱买书

题目一:买书 有一书店引进了一套书,共有3卷,每卷书定价是60元,书店为了搞促销,推出一个活动,活动如下: 如果单独购买其中一卷,那么可以打9.5折. 如果同时购买两卷不同的,那么可以打9折. 如果同时购买三卷不同的,那么可以打8.5折. 如果小明希望购买第1卷x本,第2卷y本,第3卷z本,那么至少需要多少钱呢?(x.y.z为三个已知整数). 当然,这道题完全可以不用动态规划来解,但是现在我们是要学习动态规划,因此请想想如何用动态规划来做? 答案: 1.过程为一次一次的购买,每一次购买也许只买一

4月14号周二课堂练习:买书最优问题

一.问题提出 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示: 本数                   折扣 2                       5% 3                       10% 4                       20% 5                       25% 二.题目要求 1.根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣

课堂练习-买书价格最低

实验背景 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示: 本数 折扣 2 5%         3 10%         4 20%            5 25% 根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠.       设计算法能够计算出读者购买一批书的最低价格. 一.设计思想此问题可以折算为如何取余

软件工程——买书折扣问题

1.题目 书店针对<哈利波特>系列书籍进行促销活动一共5卷,用编号0.1.2.3.4表示,单独一卷售价八元,具体折扣如下所示: 本书       折扣 2           5% 3          10% 4          15% 5          20% 根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠.设计算法能够计算出读者购买一批书的最低价格. 2.设计思路 根据题目

OpenJudge百炼习题解答(C++)--题4040:买书问题

题: 总时间限制:  1000ms  内存限制:  65536kB 描述 某网上书店举行优惠促销,现有两种优惠策略.策略一是购书总额大于100元的可享受免费送货.策略二是如果购书数量大于3本,则购书总额享受95折优惠(不包括运费).两种优惠策略不能同时享受,最多可选择其中一种优惠策略.运费为20元.小明想在这个网站上买书,请帮他选择最优的优惠策略. 输入 有多行,第一行是买书的种类N(0 <= N <= 100),接下来的N行每行输入一种书目的购买数量M和代价P(P不一定是整数).当N为-1时