FATE

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 16139    Accepted Submission(s): 7597

Problem Description
最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。xhd还说了他最多只杀s只怪。请问他能升掉这最后一级吗?
Input
输入数据有多组,对于每组数据第一行输入n,m,k,s(0 < n,m,k,s < 100)四个正整数。分别表示还需的经验值,保留的忍耐度,怪的种数和最多的杀怪数。接下来输入k行数据。每行数据输入两个正整数a,b(0 < a,b < 20);分别表示杀掉一只这种怪xhd会得到的经验值和会减掉的忍耐度。(每种怪都有无数个)
Output
输出升完这级还能保留的最大忍耐度,如果无法升完这级输出-1。
Sample Input
10 10 1 10 1 1 10 10 1 9 1 1 9 10 2 10 1 1 2 2
Sample Output
0 -1 1
分析:当作完全背包做。dp[i][j][k]表示已经决定了前i种怪每种打多少只,
当前已经打的怪所需忍耐度总和不超过j,打怪的数量不超过k时,能够获取的最高的经验值的和,
再把三维数组变成二维滚动数组做,dp[j][k]=max(dp[j][k],dp[j-r[i]][k-1]+value[i])。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int value[200],r[200],dp[200][200];
int main()
{int N,M,K,S;while(scanf("%d%d%d%d",&N,&M,&K,&S)!=EOF){int flag=0,ans=999999999;for(int i=1;i<=K;i++)scanf("%d%d",&value[i],&r[i]);memset(dp,0,sizeof(dp));for(int i=1;i<=K;i++)for(int j=r[i];j<=M;j++)for(int k=1;k<=S;k++){dp[j][k]=max(dp[j][k],dp[j-r[i]][k-1]+value[i]);if(dp[j][k]>=N&&j<=ans)//记录可以升级时的最小忍耐度 ans=j;}if(ans<999999999) printf("%d\n",M-ans);else printf("-1\n");}return 0;
}

View Code

转载于:https://www.cnblogs.com/ACRykl/p/8232550.html

hdu2159 FATE相关推荐

  1. HDU-2159 FATE 二维背包

    FATE Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. HDU-2159 FATE 二维背包

    这题是一个二维背包的题目,刚开始并没有那样去做,只开了一维的空间来存储状态,结果很多的数据都没有跑过去.其实这题这样来问的话可能就明了很多了,求在指定的容忍值和指定的杀怪数下,求最大能够得到了经验数, ...

  3. HDU2159 FATE(二维背包、带限制条件的背包问题)

    题目传送门 题意很明显,就不细说了 我们这里可以把剩下的忍耐度看作背包容量,然后价值就是杀了怪所得的经验 用第二维表示杀了q只怪,这样就能用dp[j][q]表示已消耗j点忍耐度,杀了q只怪时的经验值 ...

  4. HDU 2159 FATE【二维完全背包】

    题目链接:https://vjudge.net/problem/HDU-2159 FATE                                                       ...

  5. HDU2159.FATE-完全背包

    HDU2159.FATE-完全背包 FATE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...

  6. 联邦学习fate笔记小结

    20211006 https://gitee.com/jfdwd/FedRec fate推荐 faterec job_config和task_config不是同一个东西 task_config包含jo ...

  7. FATE 集群部署 step3

    部署FATE 参考中文集群部署文档 all 指的是2个虚拟机都要操作 f1 只的是1号虚拟机 f2 指的是2号虚拟机 f1 root hostnamectl set-hostname VM_0_1_c ...

  8. 【联邦学习】FATE 集群部署 step3

    [联邦学习]FATE 集群部署step1 [联邦学习]FATE 集群部署step2 部署FATE 参考中文集群部署文档 all 指的是2个虚拟机都要操作 f1 只的是1号虚拟机 f2 指的是2号虚拟机 ...

  9. 【联邦学习】FATE 集群部署 step2

    [联邦学习]FATE 集群部署step1 [联邦学习]FATE 集群部署step3 配置虚拟机网络 配置虚拟机镜像 all 指的是2个虚拟机都要操作 f1 只的是1号虚拟机 f2 指的是2号虚拟机 配 ...

最新文章

  1. 每个程序员都需要学习 JavaScript 的7个理由
  2. AI与网络安全的未来:数据集与协同能力
  3. 常见四大类型视频接线DP、HDMI、DVI、VGA的比较
  4. postfix+mysql 发件服务
  5. ecshop 去版权
  6. Windows下Oracle的下载与安装
  7. mysql redis hbase_MySQL之基本介绍
  8. 工作395-路由选择
  9. oracle活跃用户,监控数据库中的活跃用户及其运行
  10. Elasticsearch 数据写入原理
  11. gerber文件怎么导贴片坐标_SMT贴片加工有哪些常用的名词
  12. PCIe协议在具体实现时的大体框图
  13. 使用python把txt文件转为csv文件并且利用自己想要的分割符号
  14. 计算机建筑制图实践报告,工程建筑实习报告范文(精选5篇)
  15. word 的使用 —— 快捷键(分节符 分页符 分栏符)
  16. 查询失败,后台服务器运行错误,添加网络打印机错误?怎么处理?Windows 无法连接到打印机。 服务器打印后台处理程序服务没有运行。...
  17. jmeter如何进行一个简单的测试(超级详细,有图有文字,闭着眼都能成功)
  18. 使用树莓派制作一套“NAS+私有云盘+下载机”
  19. 多项式除以多项式例题讲解_多项式乘以多项式训练题.doc
  20. CSS3 transform变形属性、2D变形、3D变形

热门文章

  1. Unit Test测试框架中的测试的执行顺序
  2. LDA-math-MCMC 和 Gibbs Sampling
  3. 刚发现 emacs的新的go-mode
  4. ORACLE分页查询SQL语法——最高效的分页
  5. ??征集Sql Server2005设置Windows集成认证资料
  6. Unity3D手机斗地主游戏开发实战(03)_地主牌显示和出牌逻辑
  7. apache+svn服务搭建
  8. js之数组,对象,类数组对象
  9. 使用虚拟机运行Ubuntu时,主机与宿主机共享文件的方法。
  10. WCF入门教程(vs2010)