寒冰王座

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 13001    Accepted Submission(s): 6620

Problem 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
记忆化搜索代码:
/*
Problem : 1248 ( 寒冰王座 ) Judge Status : Accepted
RunId : 14251353 Language : G++ Author : 2486
Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta
*/
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=1e4+5;
int T,n;
int dp[maxn];
int S[3]={150,200,350};
int dfs(int s){
if(dp[s]!=-1)return dp[s];
int ans=0;
for(int i=0;i<3;i++){
if(s-S[i]<0)continue;//钱不够买东西了
ans=max(dfs(s-S[i])+S[i],ans);
}
return dp[s]=ans;
}
int main(){
scanf("%d",&T);
memset(dp,-1,sizeof(dp));
while(T--){
scanf("%d",&n);
dfs(n);
printf("%d\n",n-dp[n]);
}
return 0;
}


全然背包代码:

/*
Problem : 1248 ( 寒冰王座 ) Judge Status : Accepted
RunId : 14251499 Language : G++ Author : 2486
Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta
*/
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=1e4+5;
int T,n;
int dp[maxn];
int S[3]= {150,200,350};
int main() {
scanf("%d",&T);
memset(dp,0,sizeof(dp));
while(T--) {
scanf("%d",&n);
for(int i=0;i<3;i++){
for(int j=S[i];j<=n;j++){
dp[j]=max(dp[j],dp[j-S[i]]+S[i]);
}
}
printf("%d\n",n-dp[n]);
}
return 0;
}

 

HDU 1248寒冰王座-全然背包或记忆化搜索的更多相关文章

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

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

  2. HDU 1248 寒冰王座(完全背包裸题)

    寒冰王座 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  3. HDU 1248 寒冰王座 完全背包

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1248 中文题,大意就不说了. 第一道完全背包题,跟着背包九讲做的. 和0-1背包的区别在于所不同的是每种 ...

  4. HDU 1248 寒冰王座 (完全背包)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1248 寒冰王座 Time Limit: 2000/1000 MS (Java/Others)    M ...

  5. HDU 1142 A Walk Through the Forest (记忆化搜索 最短路)

    A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  6. HDU 4444 Walk (离散化建图+BFS+记忆化搜索) 绝对经典

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4444 题意:给你一些n个矩形,给你一个起点,一个终点,要你求从起点到终点最少需要转多少个弯 题解:因为 ...

  7. hdu 1078 FatMouse and Cheese(简单记忆化搜索)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意:给出n*n的格子,每个各自里面有些食物,问一只老鼠每次走最多k步所能吃到的最多的食物 一道 ...

  8. hdu 4753 Fishhead’s Little Game 博弈论+记忆化搜索

    思路:状态最多有2^12,采用记忆化搜索!! 代码如下: #include<iostream> #include<stdio.h> #include<algorithm& ...

  9. hdu 1078 FatMouse and Cheese (dfs+记忆化搜索)

    pid=1078">FatMouse and Cheese Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/ ...

随机推荐

  1. js中将html文档写入静态界面当中

    1.静态界面当中: <div id="test"></div> 2.在js当中写入 $("#test").append(html文档内容 ...

  2. C#和Java在语法上的差异(原创,持续更新中)

    1.switch  C#一直支持String类型 Java直到1.7才支持 2.C#里String有Length属性 Java里是Length方法 3.C#中修饰class的sealed效果与Java ...

  3. (转)全文检索技术学习(二)——配置Lucene的开发环境

    http://blog.csdn.net/yerenyuan_pku/article/details/72589380 Lucene下载 Lucene是开发全文检索功能的工具包,可从官方网站http: ...

  4. IIS发布403报错

    报错信息如下图 解决方案,inetmgr打开IIS,找到对应网站的目录浏览,双击 开启

  5. Redis系列(九)--几道面试题

    这里只是一点面试题,想了解更多,可以查看本人的Redis系列:https://www.cnblogs.com/huigelaile/category/1461895.html 1.Redis和Memc ...

  6. vue基础---计算属性和侦听器

    [一]计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example"> ...

  7. 【LeetCode】7、Reverse Integer(整数反转)

    题目等级:Easy 题目描述: Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 O ...

  8. python_ 学习笔记(hello world)

    python中的循环语句 循环语句均可以尾随一个else语句块,该块再条件为false后执行一次 如果使用break跳出则不执行. for it in [1,2,3,4]: print(it,end= ...

  9. Platform 获取主机系统信息

    该模块用来访问平台相关属性. 常见属性和方法 1. import platform(pip install platform)   2.获取操作系统名称及版本号 def get_platform(): ...

  10. python实现定时发送qq消息

    因为生活中老是忘记各种事情,刚好又在学python,便突发奇想通过python实现提醒任务的功能(尽管TIM有定时功能),也可定时给好友.群.讨论组发送qq消息.其工作流程是:访问数据库提取最近计划— ...