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

题意:给你一些钱 m ,然后在这个国家买东西, 共有 n 件物品,每件物品价格P价值V还有一个很特别的属性Q, Q指你如过想买这件物品,你的手中至少有Q钱 。虽然你只要花费钱P ,但你的手中至少有钱Q,如果不足Q ,不能买。问给你钱M ,列出N件物品,最多能获得多少价值的东西。

思路:如果没有Q的限制,显然是裸的01背包。DP,还是贪心求解,需要满足一个无后效性,其中所谓的无后效性是指:“下一时刻的状态只与当前状态有关,而和当前状态之前的状态无关,当前的状态是对以往决策的总结”。01背包的状态转移方程是:

,显然状态实际上是从或者转移过来的。那么什么时候可以转移呢?是这个状态的花费,那么是当前我所剩下的钱,只有当的时候,才能转移。整理一下就是,即可以更新的区间是,根据无后效性是指,前面的在更新时对后面的决策无影响,只允许新数据覆盖旧数据,也就是说前面的更新的范围应该比后面的大。所以就是;即按照从大到小排序,才能保证新数据覆盖旧数据而不丢失状态。

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+7;
struct node
{int p, q, v;
}a[N];
int n, m, dp[N];
bool cmp(node a, node b)
{return a.p - a.q > b.p - b.q;
}
int main()
{while(~scanf("%d%d",&n,&m)){memset(dp,0,sizeof(dp));for(int i = 0; i < n; i++)scanf("%d%d%d",&a[i].p,&a[i].q,&a[i].v);sort(a, a+n, cmp);for(int i = 0; i < n; i++)for(int j = m; j >= a[i].q; j--)dp[j] = max(dp[j], dp[j-a[i].p] + a[i].v);printf("%d\n",dp[m]);}
}

参考:https://www.bbsmax.com/A/Ae5RXoX8zQ/

HDU - 3466(01背包理解)相关推荐

  1. HDU 3466 01背包变形

    给出物品数量N和总钱数M 对于N个物品.每一个物品有其花费p[i], 特殊值q[i],价值v[i] q[i] 表示当手中剩余的钱数大于q[i]时,才干够买这个物品 首先对N个物品进行 q-p的排序,表 ...

  2. hdu 2955 01背包

    http://acm.hdu.edu.cn/showproblem.php?pid=2955 如果认为:1-P是背包的容量,n是物品的个数,sum是所有物品的总价值,条件就是装入背包的物品的体积和不能 ...

  3. hdu 3732(01背包转多重背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3732 思路:这么大的数据,用01背包肯定会TLE的,01背包转多重背包..最多也就11*11=121件 ...

  4. hdu 1574(01背包)

    RP问题 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Des ...

  5. HDU 2546(01背包)

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  6. hdu 2184 01背包变形

    转自:http://blog.csdn.net/liuqiyao_01/article/details/8753686 题意:这是又是一道01背包的变体,题目要求选出一些牛,使smartness和fu ...

  7. HDU - Robberies(01背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2955 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...

  8. hdu 2602 01背包入门

    Many years ago , in Teddy's hometown there was a man who was called "Bone Collector". This ...

  9. 洛谷 P1417 烹调方案 (01背包拓展)

    一看到这道题就是01背包 但是我注意到价值和当前的时间有关. 没有想太多,直接写,0分 然后发现输入方式不对-- 改了之后只有25分 我知道wa是因为时间会影响价值,但不知道怎么做. 后来看了题解,发 ...

最新文章

  1. 基于Vue开发的购物车案例
  2. 022_html计算机输出标签
  3. mysql移植海思_minigui在海思解决方案(hi3515芯片)上的移植过程(转)
  4. 第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
  5. 理论基础 —— 排序
  6. 数据赋能变现时代,应用有哪些有效的变现方式?
  7. HDU1106 排序(解法二)(废除!!!)
  8. css3弹性伸缩和使用
  9. 软件测试——测试用例设计测试分类详解
  10. # 研究杂感 × Gephi(第一辑)
  11. java fly bird小游戏_实战|JavaScript实现Fly Bird小游戏-【安基网】
  12. 基于java的婚恋交友动态网站
  13. 嵌入式_cpu微架构、互连结构与总线
  14. X5腾讯内核 安装线上内核本来能用,突然报115错误问题记录
  15. Master in Vocab -- Day Six
  16. 赛马命运已成,微盟在劫难逃
  17. php怎么显示gif图片,如何让伪进度条在页面上显示成gif图像
  18. 第6章gp_toolkit管理架构_gp_bloat_diag
  19. VScode下载很慢解决办法
  20. 小程序 模拟今日头条导航栏,点击锚点跳转对应楼层

热门文章

  1. alsa-utils的安装以及alsamixer 的应用
  2. 常用函数(睡眠函数、函数耗时)
  3. 电机控制基础 --- (1)
  4. sql Server ldf文件过大
  5. HBuilderx 创建新文件命名重合,导致原因文件代码丢失
  6. 关于个人考取PMP认证考试的这些关键问题
  7. (二) 数据存储_进制转换_编码_字节
  8. Python网络物品采购系统毕业设计源码031035
  9. 19_小米监控Open-Falcon:Nginx监控
  10. 公众号RSS订阅源推荐 — VReadTech