博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU - 1248-寒冰王座
阅读量:5293 次
发布时间:2019-06-14

本文共 1143 字,大约阅读时间需要 3 分钟。

不死族的巫妖王发工资拉,死亡骑士拿到一张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

完全背包的板子题,理解了01背包,完全背包很容易

代码:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
const int maxn=1e5+5;typedef long long ll;using namespace std;int dp[10005];int main(){ int T; cin>>T; int N; while(T--) { memset(dp,0,sizeof(dp)); int a[4]={ 0,150,200,350}; scanf("%d",&N); for(int t=1;t<=3;t++) { for(int j=a[t];j<=N;j++) { dp[j]=max(dp[j],dp[j-a[t]]+a[t]); } } printf("%d\n",N-dp[N]); } return 0;}

 

转载于:https://www.cnblogs.com/Staceyacm/p/10799525.html

你可能感兴趣的文章
Vue 模板解释
查看>>
http://www.bootcss.com/
查看>>
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>
自己动手写ORM(01):解析表达式树生成Sql碎片
查看>>
如何使用USBWebserver在本机快速建立网站测试环境
查看>>
百度Ueditor编辑器的Html模式自动替换样式的解决方法
查看>>
变量提升
查看>>
线性表可用顺序表或链表存储的优缺点
查看>>
在现有的mysql主从基础上,搭建mycat实现数据的读写分离
查看>>
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>
1007. Maximum Subsequence Sum (25)
查看>>
iframe的父子层跨域 用了百度的postMessage()方法
查看>>
图片生成缩略图
查看>>
关于Mysql select语句中拼接字符串的记录
查看>>
动态规划 例子与复杂度
查看>>