题源HDU-1248

HDU-1248-寒冰王座

Description
不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前.
死亡骑士:“我要买道具!”
地精商人:“我们这里有三种道具,血瓶150块一个,魔法药200块一个,无敌药水350块一个.”
死亡骑士:“好的,给我一个血瓶.”
说完他掏出那张N元的大钞递给地精商人.
地精商人:“我忘了提醒你了,我们这里没有找客人钱的习惯的,多的钱我们都当小费收了的,嘿嘿.”
死亡骑士:"…"
死亡骑士想,与其把钱当小费送个他还不如自己多买一点道具,反正以后都要买的,早点买了放在家里也好,但是要尽量少让他赚小费.
现在死亡骑士希望你能帮他计算一下,最少他要给地精商人多少小费.

Input
输入数据的第一行是一个整数T(1<=T<=100),代表测试数据的数量.然后是T行测试数据,每个测试数据只包含一个正整数N(1<=N<=10000),N代表死亡骑士手中钞票的面值.
注意:地精商店只有题中描述的三种道具.

Output
对于每组测试数据,请你输出死亡骑士最少要浪费多少钱给地精商人作为小费.

Sample Input
2
900
250

Sample Output
0
50

题意

  • 输入一个T代表有T组数据
  • 每组数据输入一个v代表死亡骑士手中钞票的面值
  • 现能购买无数件150或200或350元的商品,不找零,多出的额度算作小费
  • 每组数据输出最少给多少小费

题解

  • 这是完全背包模板题,对模板进行微改即可
  • 不同的是商品数量价格无需输入,数量是3,cost从1到3直接赋值即可
  • 完全背包函数内部返回值是得给多少小费,所以用钞票面值(v)减最多购买商品总值(dp[v])即可

涉及知识点

  • 背包 算法(此题属于完全背包)
  • 对于背包的算法-详见链接博客介绍背包

AC代码

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxn=1e4+10;
int T,n,v,value[maxn],cost[maxn],dp[maxn];
int knapsack_full()
{memset(dp,0,sizeof(dp));for(int i=1;i<=n;++i){for(int j=cost[i];j<=v;++j){dp[j]=max(dp[j],dp[j-cost[i]]+cost[i]);}}return v-dp[v];
}
int main()
{scanf("%d",&T);while(T--){n=3;cost[1]=150;cost[2]=200;cost[3]=350;scanf("%d",&v);printf("%d\n",knapsack_full());}return 0;
}

#2020.02.04训练题解#背包入门(E题)相关推荐

  1. #2020.02.05训练题解#最小生成树入门(F题)

    题源CF-1108 CF-1108-MST Unification Description You are given an undirected weighted connected graph w ...

  2. 2020.02.04 14:30

    新型冠状病毒疫情已经两三周了,在家呆了10天,今天回到北京,发现坐下来没什么可做的,准备洗洗,希望疫情早点过去,自己唯一能帮上忙的就是不瞎走动,不给医务人员添乱

  3. NEFU 大一寒假训练十二(set)2020.02.18

    Summary 可能是昨天的题少了一些,今天的题多了一堆,还疯狂TLE /(ㄒoㄒ)\~~ Information No. Title AC/Submit A 明明的随机数-set 60/101 B ...

  4. 【364天】跃迁之路——程序员高效学习方法论探索系列(实验阶段122-2018.02.04)...

    实验说明 从2017.10.6起,开启这个系列,目标只有一个:通过探索新的学习方法,用2年的时间,实现2.5倍速的成长,获得普通程序员>= 5年的技术水平. 实验期2年(2017.10.06 - ...

  5. C/C++描述 第十一届蓝桥杯省赛 C/C++ 大学C组 第一场(2020.7.5) 题目+题解

    C/C++描述 第十一届蓝桥杯省赛 第一场(2020.7.5) 题目+题解   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓 ...

  6. 动规日常训练题解 难度普及+

    9.6 动规训练  题解 ----Frosty_Jackal 定义Dpmax[i][j] 表示l~r之间最大的得分,由题意得拆环为链,将1~n的枚举范围扩大到1~2*n ,外层枚举区间长,内层枚举l, ...

  7. 2019/4/2UPC团队训练题解(A,B,E,G,I,K,L)加补题(C,D)

    问题 A: 篮球队选拔 时间限制: 1 Sec  内存限制: 128 MB 提交: 501  解决: 188 [提交] [状态] [命题人:外部导入] 题目描述 云南中医学院坐落于风景秀丽.四季如春的 ...

  8. HDU 1248 寒冰王座(全然背包:入门题)

    HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...

  9. 面试题 02.04. 分割链表

    面试题 02.04. 分割链表 编写程序以 x 为基准分割链表,使得所有小于 x 的节点排在大于或等于 x 的节点之前.如果链表中包含 x,x 只需出现在小于 x 的元素之后(如下所示).分割元素 x ...

最新文章

  1. lnamp环境搭建博客、论坛
  2. 挂起和阻塞区别以及sleep和wait的区别
  3. JAVA大文件上传断点续传解决方案
  4. 使用锁实现多线程共用一个数据源
  5. Reading Club week 3 prepare document
  6. 删除文件夹里的图片,打印删除日志
  7. java语音播报案例
  8. Springmvc,Spring MVC文件上传
  9. Python入门:Anaconda和Pycharm的安装和配置
  10. 艾默生网络能源的数据中心生意经
  11. mac 二进制安装mysql_在mac下安装mysql二进制分发版的方法(不是dmg的)
  12. $.prop()和$.attr() 区别用法
  13. booststraping
  14. 根据屏幕大小制定显示页面
  15. Nuget没办法使用了。
  16. 提升R代码运算效率的11个实用方法——并行、效率
  17. 搭建Android的开发环境
  18. Altium Designer中PCB画多层板(4、6、8...层)
  19. python里面的pip是什么意思_为什么您应该使用`python -m pip`
  20. ch341a编程和ttl刷机区别_USB转TTL(CH341A)的注意事项及说明 -

热门文章

  1. HTML+CSS+JavaScript基础知识总结
  2. MICCAI 2023 FLARE国际竞赛:打造腹部泛癌CT分割Foundation Models
  3. stl容器使用中的经验(八)对于逐个字符的输入请考虑使用 istreambuf_iterator
  4. tbc新服务器消息,魔兽世界怀旧服:新增fresh start服务器概念,TBC版本开放消息一览...
  5. Electron调用spawn执行cmd命令
  6. 手把手Android Studio全套安装+配置+真机部署教程【多图超详细】
  7. 【Qt学习之行】相机和音频录制
  8. 7月30日题记(CF1554B/CF1554C/CF1206C/CF1200C/CF1200B/CF841B/CF1202A/CF1234C)
  9. 使用Java Swing实现QQ管家界面
  10. arcgis用python字段自动编号,arcgis中字段自动编号的两种方法