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. 通过帧中继验证OSPF支持的不同网络类型
  2. wsl ubuntu 版本_让Ubuntu滚动更新
  3. 织梦dedecms search.php注入漏洞exp,DedeCms V57 plus/search.php 文件SQL注射0day漏洞
  4. Maven 配置文件 POM 的常用插件配置代码
  5. [转] 标准化和归一化
  6. 朋友圈加粗字体数字_数字+符码:医院数码导视系统畅想起来
  7. 什么时候找到HAVE_CONFIG_H的定义啊
  8. python语言的缺点-python优缺点分析及python种类
  9. gdb 命令_gdb实用的调试技巧:启动方式、堆栈信息、单步调试
  10. Linux常用命令参考手册02
  11. LuaForUnity6:Lua模块
  12. 短信转移到另一个手机接收_如何将iPhone手机接收短信同步到另外一台设备上?...
  13. 两个json对象合并为一个json对象
  14. 怎么在线批量网站打开?
  15. mybatis+mysql查询类别下的所有子类别(递归)
  16. 一个几乎对英语零基础的人,该如何有效,且高效的学习英语?
  17. android4.4 获取符合默认短信应用要求的短信应用包名(改进篇)
  18. Cpp web(一) Ubuntu下安装使用Crow服务
  19. Cracked VMware Workstation 7.0
  20. poi操作excel之列合并

热门文章

  1. 火狐推荐几个实用的插件
  2. 编写字符串反转函数 - 小小外星人的技术博客 - 博客频道 - CSDN.NET
  3. Android Chromium WebView Crash
  4. 查看linux中的TCP连接数
  5. 微服务测试之静态代码扫描
  6. mysql5.7系列修改root默认密码
  7. MongoDB 启动 Failed to connect to 127.0.0.1:27017, reason: 由于目标计算机积极拒绝,无法连接。...
  8. Python3.6 和 Pycharm 详细安装教程
  9. iOS - OC NSPoint 位置
  10. DNS and BIND