限制条件: 1.忍耐度 m   2.杀怪个数 s

构造: dp[m][s]   得到的经验值

Time limit       1000 ms

Memory limit       32768 kB

OS       Windows

Source      2008信息工程学院集训队——选拔赛

最近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

分析:完全背包,但由于条件限制,三层循环+二维数组

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{int n,m,k,s;while(~scanf("%d %d %d %d",&n,&m,&k,&s)){int a[110]= {0},b[110]= {0};for(int i=0; i<k; i++)scanf("%d %d",&a[i],&b[i]);int dp[110][110],ma=-1;memset(dp,0,sizeof(dp));for(int t=0; t<=m; t++)//所用的忍耐度{for(int i=0; i<k; i++){for(int j=1; j<=s; j++) //当前杀怪数{if(t>=b[i])dp[j][t]=max(dp[j][t],dp[j-1][t-b[i]]+a[i]);}}if(dp[s][t]>=n){ma=m-t;break;}}cout<<ma<<endl;}return 0;
}

FATE HDU - 2159(二维完全背包)相关推荐

  1. HDU 2159 FATE (DP 二维费用背包)

    题目链接 题意 : 中文题不详述. 思路 : 二维背包,dp[i][h]表示当前忍耐值为i的情况下,杀了h个怪得到的最大经验值,状态转移方程: dp[i][h] = max(dp[i][h],dp[i ...

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

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

  3. 背包模型dp2之二维费用背包

    二维费用背包 状态表示:f[i][j][k]所有只从前i个物体中选,并且总体积不超过j,总重量不超过k的选法状态表示:f[i][j][k]所有只从前i个物体中选,并且总体积不超过j,总重量不超过k的选 ...

  4. 【洛谷 - P1507 】NASA的食物计划(二维费用背包,dp)

    题干: 题目背景 NASA(美国航空航天局)因为航天飞机的隔热瓦等其他安全技术问题一直大伤脑筋,因此在各方压力下终止了航天飞机的历史,但是此类事情会不会在以后发生,谁也无法保证,在遇到这类航天问题时, ...

  5. UVA 10306 e-Coins(二维完全背包)

    题意: 有n种物品,每种物品有两种价值x和y,并且每种物品的个数不限,求(x1 + x2 + -)^2 + (y1 + y2 + -) ^2 == S ^ 2 思路: 因为每种物品任意个,所以是二维完 ...

  6. UVA10306 - e-Coins(二维完全背包)

    题意:有n个物品,每个物品有两种价值x, y,每个物品的个数不限,求出(x1 + x2 + ...)^2 + (y1 + y2 + ...) ^2 == S ^ 2 思路:二维完全背包,因为物品个数不 ...

  7. 一本通 1271:【例9.15】潜水员(二维费用背包)

    [题目描述] 潜水员为了潜水要使用特殊的装备.他有一个带2种气体的气缸:一个为氧气,一个为氮气.让潜水员下潜的深度需要各种的数量的氧和氮.潜水员有一定数量的气缸.每个气缸都有重量和气体容量.潜水员为了 ...

  8. 【python】一篇讲透背包问题(01背包 完全背包 多重背包 二维费用背包)

    面对背包问题,有一个很重要的方程式:状态转移方程式 所以每一种背包问题我都会给出状态转移方程式 #01背包 什么是01背包型问题? 先给大家感受一下01背包型问题: 给定n种物品和一背包.物品i的重量 ...

  9. AcWing 1020. 潜水员(二维费用背包)

    一.问题 二.思路 这道题其实很容易看出是一个二维费用背包的变形,如果我们将氧气看作体积,将氮气看作价值的话,这道题就变成了从 i i i个物品里面选,体积至少为 m m m,价值至少为 n n n的 ...

最新文章

  1. 通过特征类型超参数控制权重类型
  2. 制作精美的网站首页模板应该如何操作?
  3. php 替换 乱码,php文字替换出现乱码
  4. Android初级开发第七讲--特效和数据传递处理
  5. html悬停放大图片代码,html – 放大图像并在悬停时显示div
  6. 判断手机是否有虚拟按钮,获取虚拟按钮的高度
  7. Redis哈希表总结
  8. ad6怎么画电阻_德国人怎么学电机——浅谈电机模型(十七):同步电机(四)永磁电机(二)...
  9. 服务消费和负载(Feign)
  10. 解决clover配置文件conf.plist中nv_disable=1或者nvda_drv=1不生效或者说不能删除的问题
  11. Python基础函数学习笔记(二)
  12. 服务器如何备份系统和配置,windows server 2008和2012如何设置完整备份+增量备份
  13. pentaho mysql_pentaho bi server 配置MySQL数据库
  14. hr面试性格测试30题_辉瑞面试过程辉瑞性格测试题
  15. Swoole进阶——02 内存之Table
  16. Datadome 最新逆向分析(支持爱马仕)
  17. 空间里相片批量导入u盘_多台电脑同步文件还在用 U 盘牵线?GoodSync 帮你一键搞定...
  18. C#得到10000以内素数
  19. 《Python网络爬虫技术》读书笔记1
  20. layer的简单的使用

热门文章

  1. Java之jdk和CGLib实现动态代理
  2. Android之在ubuntu上常用的am、pm命令的总结
  3. WEB服务器 - Apache、Nnginx、Lighttpd的比较和择优(转)
  4. python mssql github_GitHub上最热门的开源项目都在这里了
  5. 简单而又不平凡的杨辉三角形
  6. 一分钟教你用Excel从统计局抓数据!
  7. 资料分享 | 教程与开发手册资料分享来袭
  8. 桩筏有限元中的弹性板计算_永清县打桩机租赁钢板桩租赁怎么联系?
  9. 线程打印_面试题:用程序实现两个线程交替打印 0~100 的奇偶数
  10. ios中amplify配置configure_Nginx源码编译安装及配置文件初步学习