题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159

思路:二维完全背包,状态转移方程为: f[j][l]=max(f[j][l],f[j-b[i]][l-1]+w[i]); a[i]表示杀死第i个怪所得的经验值,b[i]表示消耗的忍耐度

 1 #include<stdlib.h>
 2 #include<time.h>
 3 #include <cstdio>
 4 #include <cstring>
 5 #include <cmath>
 6 #include <cstdlib>
 7 #include <ctime>
 8 #include <iostream>
 9 #include <algorithm>
10 #include <vector>
11 #include <queue>
12 #include <map>
13 #include <set>
14 #include <string>
15 using namespace std;
16
17
18 int dp[100][100];
19
20 int main()
21 {
22     int a[100],b[100];
23     int n,m,k,s;
24     int i,j,l,locate,flag;
25     while(scanf("%d %d %d %d",&n,&m,&k,&s)!=EOF)
26     {
27         memset(dp,0,sizeof(dp));
28         for(i=0;i<k;i++)
29         {
30             scanf("%d %d",&a[i],&b[i]);
31         }
32         for(i=0;i<k;i++)
33         {
34             for(j=b[i];j<=m;j++)
35             {
36                 for(l=1;l<=s;l++)
37                     dp[j][l]=max(dp[j][l],dp[j-b[i]][l-1]+a[i]);
38             }
39         }
40         flag=0;
41         for(i=0;i<=m;i++)
42         {
43             if(flag)
44                 break;
45             for(j=0;j<=s;j++)
46             {
47                 if(dp[i][j]>=n)
48                 {
49                     locate=i;
50                     flag=1;
51                     break;
52                 }
53             }
54         }
55         if(flag)
56             printf("%d\n",m-locate);
57         else
58         printf("-1\n");
59     }
60     return 0;
61 } 

转载于:https://www.cnblogs.com/pter/p/4915701.html

hdu 2159 FATE相关推荐

  1. HDU 2159 FATE 动态规划二维费用的背包问题

    http://acm.hdu.edu.cn/showproblem.php?pid=2159 题意: 给出的n , m , k ,s 分别代表还需n经验升级.还有m耐久度.下面有k组数据.最多能杀s只 ...

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

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

  3. hdu 2159 FATE 二维背包

    FATE                                                                       Time Limit: 2000/1000 MS ...

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

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

  5. 二维费用 hdu 2159 FATE(完全背包)HDU OJ 4501 小明系列故事——买年货【DP】

    二维费用的背包问题是指:对于每件物品,具有两种不同的费用:选择这件物品必须同时付出这两种代价:对于每种代价都有一个可付出的最大值(背包容量).问怎样选择物品可以得到最大的价值.设这两种代价分别为代价1 ...

  6. FATE HDU - 2159(二维完全背包)

    限制条件: 1.忍耐度 m   2.杀怪个数 s 构造: dp[m][s]   得到的经验值 Time limit       1000 ms Memory limit       32768 kB ...

  7. 动态规划总结与题目分类

    源博客链接:http://blog.csdn.net/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少 ...

  8. 『ACM-算法-动态规划』初识DP动态规划算法

    一.多阶段决策过程的最优化问题 在现实生活中,有类活 动的过程,由于 它的特殊性,可将过程分成若干个互相阶段.在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.当阶段决策的选取不是任意确 ...

  9. (转)dp动态规划分类详解

    dp动态规划分类详解 转自:http://blog.csdn.NET/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间 ...

  10. 《动态规划》— 动态规划分类

    动态规划(英语:Dynamic programming,DP)是一种在数学.计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法. 动态规划常常适用于有重叠子问题和最 ...

最新文章

  1. linux安装硬盘命令,硬盘安装linux的两条命令
  2. 关于java反射机制(基础篇)
  3. SQL点滴20—T-SQL中的排名函数
  4. Pattern-No.07 设计模式之单例模式
  5. 如何通过软件项目开发来提高自身的实力。
  6. 谷歌翻译无法连接网络_window10无法连接网络
  7. java tostring格式_如何在Java中使用toString()获得数字的字符串表示形式?
  8. java 奇数 字符乱码_socket中文奇数个出现乱码的解决办法
  9. 机器学习时会发生什么
  10. php盘古分词,百度分词技术_百度输入法分词怎么关_百度分词原理
  11. 【计算机·科技】互联网的黑科技来啦
  12. PYTHON实现机械臂运动检测
  13. 使用Python中的matplotlib将多个图片显示到一张图内
  14. Apache Druid(二、架构设计)
  15. CODING 代码资产安全系列之 —— 构建全链路安全能力,守护代码资产安全
  16. css和html是什么关系,css是什么,CSS和HTML有什么关系
  17. 【财务学习笔记】ROE和ROI的比较
  18. ArcGIS自制符号库、兴趣点符号库、poi符号库
  19. a different object with the same identifier value was already associated with异常解决
  20. 400KN液压绞车开题报告

热门文章

  1. CS224N刷题——Assignment3.2_Recurrent neural nets for NER
  2. jenkins 2.121.1 部署项目
  3. 用PHP做服务器接口客户端用http协议POST访问安全性一般怎么做
  4. 回忆一次面试Android研发的问题
  5. 能大大提升工作效率和时间效率的9个重要习惯
  6. Flash研究(一)——本地通讯
  7. Params属性的用法 (beginner)
  8. pooling层如何反向传播? 很简单
  9. 1.9 Important Themes(一些重要的概念)
  10. 线性代数知识荟萃(4)——矩阵相抵