luogu P1156 垃圾陷阱
原题链接:https://www.luogu.org/problem/show?pid=1156
经历了一次CE,两次WA 45,一次WA 91,终于A掉了此题。
f[i][j]表示前i个物品堆成j高度时的生命值。
对于每一件物品,都有吃掉或是把它堆起来两种方案。
如果奶牛坚持不到吃到下一个物品,那么就无需进行此次转移。
而如果不吃而将其堆起来,高度超过了井的深度,那么由于是1—n枚举的,所以此时的时间就是最快脱逃的时间,
而如果堆起来不能超过深度的话,就要同时考虑两种选择。
如果将其吃掉,那么f[i][j]=max(f[i-1][j]+p[i].e,f[i][j])
而将其堆起来的话,f[i][j+p[i].h]=max(f[i][j+p[i].h],f[i-1][j])
如果始终无法到达,那么就不妨选择全部吃掉,直到全部吃完或是坚持不到吃到下一个。
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct th {int t,e,h; }p[105]; bool cmp(th x,th y) {return x.t<y.t; } int max(int x,int y) {return x>y?x:y; } int h,n,f[1005][1005],t; int main() {scanf("%d %d",&h,&n);for(int i=1;i<=n;i++) scanf("%d %d %d",&p[i].t,&p[i].e,&p[i].h);sort(p+1,p+n+1,cmp);f[0][0]=10;for(int i=1;i<=n;i++)//i j hp {for(int j=0;j<=h;j++){if(f[i-1][j]<p[i].t) continue;if(p[i].h+j>=h){printf("%d",p[i].t);return 0;}f[i][j]=max(f[i][j],f[i-1][j]+p[i].e);f[i][j+p[i].h]=max(f[i][j+p[i].h],f[i-1][j]);}}for(int i=1;i<=n;i++) t=max(t,f[i][0]);printf("%d",t);return 0; }
转载于:https://www.cnblogs.com/zeroform/p/7663348.html
luogu P1156 垃圾陷阱相关推荐
- 【题解】luogu p1156 垃圾陷阱
背包 总结: 1.状态要根据问的问题设计,一开始我设计dp[i]是在i时间时的最高高度,而题目卡门最长可以活多久,这样设计的话若不能出去,则这个不好判断.所以设计为dp[i]是在i的高度时,卡门最多可 ...
- 【每日DP】day 9、P1156 垃圾陷阱(神奇的背包,时间节点处理)难度⭐⭐⭐
P1156 垃圾陷阱 每个垃圾只能用一次,典型的01背包. 关键是时间的处理 ll f[N];题目要中求的是生存的最长时间,所以这里的f[i]是指高度i时生存的最长时间 对于每一块垃圾,我们都有两种选 ...
- 洛谷P1156 垃圾陷阱 题解浅谈刷表法与填表法
洛谷P1156 垃圾陷阱 题解&浅谈刷表法与填表法 填表法 :就是一般的动态规划,当前点的状态,可以直接用状态方程,根据之前点的状态推导出来. 刷表法:由当前点的状态,更新其他点的状态.需要注 ...
- P1156 垃圾陷阱
我是真的不知道... 这道题对于每一个垃圾有两个决策:堆放不吃 或者 吃掉不堆放. 终止条件是堆放的高度达到\(d\).想要求达到状态的最大生命值或者最久能活到多久. 可以联想到背包问题,而且是01背 ...
- [洛谷P1156][codevs1684]垃圾陷阱
题目大意:一头奶牛掉进了深度为d的坑里,现在有g个垃圾在特定时刻ti扔进来.奶牛可以吃垃圾以获得体力,吃第i个垃圾能获得mi的体力,也可以堆放垃圾以逃生,第i个垃圾高度为hi.当高度≥d时奶牛成功逃生 ...
- 【ReView】 学习日志 from18/11/24 to 19/7/10
丶分治模板P3806寻找点对,一开始想距离的集合要不要用$set$维护做到$logN$查询,可想一下那样复杂度就会变为$O(MNlog^2N)$想想好像不太对,实际上因为值域比较小所以就直接开长度$1 ...
- 对于洛谷提高试炼场-动态规划篇的爆破
题外话 由于本蒟蒻的动态规划实在是太弱啦,所以有必要爆破一下洛谷提高试炼场.里面有很多非常好,难度也合适的动态规划题--(然而你还是抄了不少题解) niconiconi~让我们一起开始爆破吧. lv- ...
- OI每周刷题记录——lrllrl
看这标题就知道我是模仿的hzwer大佬,远程%%% 大佬的OI经历让蒟蒻我深受感触,为了晚一些AFO本蒟蒻也得加油了 从高二上期第一周开始计数,每个星期天更一次,一直更到我AFO 如果这是我此生最后一 ...
- 垃圾陷进-洛谷P1156
垃圾陷阱-洛谷P1156 题目链接-戳这里 题目描述 卡门――农夫约翰极其珍视的一条Holsteins奶牛――已经落了到"垃圾井"中."垃圾井"是农夫们扔垃圾的 ...
最新文章
- linux编译安装jpeg,Linux下JPEG库安装脚本(转)
- 刷脸支付问题多,亚马逊选择刷「手掌」,在无人超市正式商用
- php7安装event拓展
- 文科学业水平测试题软件,学业水平测试:文科备战理科篇
- 快速入门在Vue中使用滑动插件Swiper
- Golang之Ginkgo、Gomega测试框架
- 使用GraphQL的subscription订阅服务器的通知
- 论赵泽彬多终端应⽤下的架构设计
- 【CF#801 A.】 Vicious Keyboard(字符串查找,水题)
- Structure from Motion 资料总结
- xmind怎样画流程图_老师是怎样上网课的?
- matlab条形指纹拼接,matlab实现的两幅指纹图像的拼接
- 494. Target Sum
- windows驱动加载顺序
- 揭秘勒索病毒背后黑客组织:偷了官方网络武器库
- python爬虫怎么保存图片_使用Python爬虫怎么将网页图片保存到本地
- Dell电脑插入耳机无效
- JavaSE(J2SE)入门学习笔记(二)
- 不得不知 云计算入门必备的60条术语
- 软件工程之结构化方法
热门文章
- pythonvi自动缩进_Vim如何配置Python的缩进?
- java drools5_【java规则引擎】drools6.5.0版本api简介
- 网页运行python脚本_python脚本和网页有何区别
- 开放大学计算机应用基础第三次,江苏开放大学-计算机应用基础第三次.doc
- serialize java_java serialize 浅谈
- jqueryui手风琴_jQueryUI手风琴插件
- python scikit_Python SciKit学习教程
- 深入解析C/C++的优缺点以及就业方向
- Java 静态代理、Java动态代理、CGLIB动态代理
- Sql中的union和union all的讲解