背包

总结:

1.状态要根据问的问题设计,一开始我设计dp[i]是在i时间时的最高高度,而题目卡门最长可以活多久,这样设计的话若不能出去,则这个不好判断。所以设计为dp[i]是在i的高度时,卡门最多可以后活多久,这样问题便迎刃而解。

2.不用将牛的寿命减去时间,直接将牛可以存活的时间与当前时间比较即可。

3.关于状态设计时,  dp[j+a[i].h] = max(dp[j+a[i].h], dp[j]);这个是选择堆积时,我们这时候直接选择最大的寿命即可
            dp[j] += a[i].f; 这个是选则吃垃圾时的最大寿命。

#include<bits/stdc++.h>
using namespace std;
struct node{int t, f, h;
}a[105];
int d, g, dp[105];bool cmp(node x, node y)
{return x.t < y.t;
}int main()
{cin >> d >> g;for(int i = 1; i <= g; i++)cin >> a[i].t >> a[i].f >> a[i].h;sort(a+1, a+1+g, cmp);memset(dp, -0x3f, sizeof(dp));dp[0] = 10;for(int i = 1; i <= g; i++)for(int j = d; j >= 0; j--)if(dp[j] >= a[i].t){if(a[i].h+j >= d){cout << a[i].t;return 0;}dp[j+a[i].h] = max(dp[j+a[i].h], dp[j]);dp[j] += a[i].f;}cout << dp[0];return 0;} 

转载于:https://www.cnblogs.com/lovezxy520/p/11370832.html

【题解】luogu p1156 垃圾陷阱相关推荐

  1. luogu P1156 垃圾陷阱

    原题链接:https://www.luogu.org/problem/show?pid=1156 经历了一次CE,两次WA 45,一次WA 91,终于A掉了此题. f[i][j]表示前i个物品堆成j高 ...

  2. 洛谷P1156 垃圾陷阱 题解浅谈刷表法与填表法

    洛谷P1156 垃圾陷阱 题解&浅谈刷表法与填表法 填表法 :就是一般的动态规划,当前点的状态,可以直接用状态方程,根据之前点的状态推导出来. 刷表法:由当前点的状态,更新其他点的状态.需要注 ...

  3. 【每日DP】day 9、P1156 垃圾陷阱(神奇的背包,时间节点处理)难度⭐⭐⭐

    P1156 垃圾陷阱 每个垃圾只能用一次,典型的01背包. 关键是时间的处理 ll f[N];题目要中求的是生存的最长时间,所以这里的f[i]是指高度i时生存的最长时间 对于每一块垃圾,我们都有两种选 ...

  4. P1156 垃圾陷阱

    我是真的不知道... 这道题对于每一个垃圾有两个决策:堆放不吃 或者 吃掉不堆放. 终止条件是堆放的高度达到\(d\).想要求达到状态的最大生命值或者最久能活到多久. 可以联想到背包问题,而且是01背 ...

  5. 题解 luogu P2568 GCD

    题解 luogu P2568 GCD 时间:2019.3.11 欧拉函数+前缀和 题目描述 给定整数\(N\),求\(1\le x,y \le N\)且\(\gcd(x,y)\)为素数的数对\((x, ...

  6. [洛谷P1156][codevs1684]垃圾陷阱

    题目大意:一头奶牛掉进了深度为d的坑里,现在有g个垃圾在特定时刻ti扔进来.奶牛可以吃垃圾以获得体力,吃第i个垃圾能获得mi的体力,也可以堆放垃圾以逃生,第i个垃圾高度为hi.当高度≥d时奶牛成功逃生 ...

  7. 「题解」关于sizeof陷阱,无符号整形,变种水仙花数

  8. 【ReView】 学习日志 from18/11/24 to 19/7/10

    丶分治模板P3806寻找点对,一开始想距离的集合要不要用$set$维护做到$logN$查询,可想一下那样复杂度就会变为$O(MNlog^2N)$想想好像不太对,实际上因为值域比较小所以就直接开长度$1 ...

  9. 对于洛谷提高试炼场-动态规划篇的爆破

    题外话 由于本蒟蒻的动态规划实在是太弱啦,所以有必要爆破一下洛谷提高试炼场.里面有很多非常好,难度也合适的动态规划题--(然而你还是抄了不少题解) niconiconi~让我们一起开始爆破吧. lv- ...

最新文章

  1. php直接修改excel,php如何修改excel
  2. java 两行代码解析json文件
  3. python index函数时间复杂度_如何确定Python中递归循环的时间复杂度?
  4. 逆向工程核心原理读书笔记-代码注入
  5. 只有本地用户才能安装sql_为何只有安装了新风换气机才能打造好的家居环境?听听厂家怎么说...
  6. linux complete函数,Linux驱动中completion接口浅析(wait_for_complete例子,很好)
  7. 静态和动态web的区别与联系
  8. 结对项目——个人博客
  9. postfix邮件队列管理
  10. HDU1427 速算24点【DFS】
  11. Pannellum:实例之自动加载全景图
  12. 如何理解P40采用RYYB比RGGB的感光能力提升40%
  13. 关于亿图图示缩放锁定1%的问题
  14. OpenCV之图像锐化
  15. [原创]egret的WebView实现(基于egret2.5)
  16. 2021-03-21
  17. 南华大学计算机学院团学会成员,【计算机科学与技术学院】计算机学院第九届研究生团学会换届选举会议圆满结束...
  18. 虚拟语气--专升本语法
  19. 高性能Javascript(1)
  20. 新站4个月,新手做网站经验总结

热门文章

  1. python获得本机硬件信息
  2. 学爬虫,你敢说你不会 requests 模块
  3. 数据结构和算法 —— 时间复杂度+空间复杂度
  4. JAVA基本数据类型、数据类型转换
  5. ubuntu16.04+anaconda3+python3.6安装OpenCV3.1.0
  6. 【C++】Visual Studio 2019 三个版本比较
  7. 【Linux】一步一步学Linux——apt-get命令(278)
  8. 如何从服务器导出文件,如何从云服务器导出文件
  9. 每天一道LeetCode-----给定字符串s和字符数组words,在s中找到words出现的位置,words内部字符串顺序无要求
  10. 如何在windows下使用linux命令