The Last Stand

https://ac.nowcoder.com/acm/contest/303/L

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

tokitsukaze玩到了星际争霸2(StarCraftⅡ)自由之翼的最后一关战役:背水一战(The Last Stand)。
雷诺(Raynor)费劲千辛万苦终于找到了刀锋女王凯瑞甘(Kerrigan),这时候雷诺收集齐了塞尔纳加上古神器。上古神器组装后可以净化被异虫感染的人类。
刀锋女王一开始位于坐标原点,她的初始生命为h,她要进攻位于m处的人类基地。
在进攻的过程中刀锋女王会选择触发一些事件来强化自身,但是因为受到塞尔纳加上古神器的影响,这些事件发生了反转,所以不一定都会给刀锋女王带来强化。
刀锋女王在进攻的过程中会路过n个事件的触发地,其中第i个事件的触发地点为pos[i]。当触发这个事件时,会立刻将刀锋女王的生命值变为H+val[i],H为触发事件时刀锋女王的生命值,注意val[i]的值可能为正也可能为负。触发这个事件的同时,还会给刀锋女王添加一个buff。
为了简化问题,我们认为刀锋女王身上最多只能存在一个buff,也就是后来的buff会覆盖掉之前的buff效果,该buff会持续的改变刀锋女王的生命值,当刀锋女王身上存在buff时,她每往前走一个单位,她的生命值都会变为H+delta[i],H为刀锋女王往前走一个单位前的生命值,注意delta[i]可能为正值,也可能为负值。我们认为一开始刀锋女王身上不具有任何的buff效果。
刀锋女王在路过某个事件的触发地时,她可以选择触发这个事件或者跳过不触发这个事件。不过聪明的刀锋女王总是会选择最优策略,这使她到达人族基地时拥有最多的生命值。

当刀锋女王的生命值小于等于0时,她就会死亡,在保证刀锋女王必须存活的条件下。她到达人族基地时的最大生命值是多少?(假设她的生命值上限无限大的前提下)

输入描述:

第一行输入一个正整数T(1≤T≤30),表示有T组数据。

对于每组案例:

第一行输入三个正整数n,m,h(1≤n≤1000,1≤m≤10^9,1≤h≤10^9)分别表示有n个事件的触发地,刀锋女王要进攻位于m处的人族基地,刀锋女王的初始生命h。

接下来n行每行输入三个正整数pos[i],val[i],delta[i](1≤pos[i]<m ,-10^9≤val[i],delta[i]≤10^9),分别表示第i个事件的触发地为pos[i],如果刀锋女王触发该事件的话,会立刻改变她的生命val[i]点,并且会改变自身buff的状态,之后每往前走一步都会改变她的生命值delta[i]点。

输入保证这n个事件的触发地pos[i]是按照递增顺序输入的,并且pos[i]互不相同。

输出描述:

对于每组数据,请输出一行一个正整数表示刀锋女王在选择最优策略的情况下到达人族基地时自身生命的最大值。
示例1

输入

4
3 5 1
1 -1 100000
2 200 -100
3 -100 2
4 10 1
1 -1 100
2 50 -10
4 -15 3
5 -20 5
4 100 1
1 -1 100
2 50 -10
4 -15 3
5 -20 5
1 1000000000 1
1 900000000 -1

输出

5
34
476
1

说明

第一组样例:

当刀锋女王走到1位置时如果选择触发事件就会立刻失去1点生命而导致死亡,所以她不能触发事件1。

之后刀锋女王走到位置2,她选择触发事件,她先获得200点生命值,所以当前生命值变为201,并且身上获得了一个每走一步生命减少100点的debuff。

刀锋女王走到位置3时由于debuff的效果生命减少100点变为101,之后她选择触发位置3上的事件,生命值先减少100点变为1,并且身上获得了一个每走一步生命值增加2的buff效果,并且该效果覆盖掉了之前的debuff。

刀锋女王从位置3走到位置4,触发一次buff效果,当前生命变为3。

刀锋女王从位置4走到位置5,再次触发buff效果,当前生命变为5。

 1 #include<iostream>
 2 #include<cstring>
 3 #include<string>
 4 #include<algorithm>
 5 #include<cmath>
 6 #include<queue>
 7 #include<stack>
 8 #include<cstdio>
 9 #include<vector>
10 typedef long long ll;
11 using namespace std;
12
13 struct sair{
14     ll pos,val,delta;
15 }a[1005];
16
17 ll dp[1005];
18
19 int main(){
20
21     ll n,m,h;
22     int _;
23     for(cin>>_;_;_--){
24         cin>>n>>m>>h;
25         for(int i=1;i<=n;i++){
26             cin>>a[i].pos>>a[i].val>>a[i].delta;
27         }
28         a[n+1].pos=m,a[n+1].val=0,a[n+1].delta=0;
29         for(int i=1;i<=n+1;i++){
30             dp[i]=h;
31         }
32         for(int i=1;i<=n;i++){
33             ll tmp=dp[i]+a[i].val;
34             if(tmp>0){
35                 for(int j=i+1;j<=n+1;j++){
36                     tmp=dp[i]+a[i].val+(a[j].pos-a[i].pos)*a[i].delta;
37                     dp[j]=max(dp[j],tmp);
38                 }
39             }
40         }
41         cout<<dp[n+1]<<endl;
42     }
43
44 }

View Code

转载于:https://www.cnblogs.com/Fighting-sh/p/10092019.html

The Last Stand相关推荐

  1. Linux中的两种守护进程stand alone和xinetd

    Linux中的两种守护进程stand alone和xinetd --http://www.cnblogs.com/itech/archive/2010/12/27/1914846.html#top 一 ...

  2. 无人机动力测试台:150kg级-Flight Stand 150

    "飞行汽车"被人们广泛视为下一代交通工具.从2022年初至今,eVTOL(电动垂直起降飞行器)产业乃至整个UAM(城市间空中交通)市场呈现爆发式增长--各国航空制造企业纷纷入局,不 ...

  3. 默哀STAND SILENTLY!

    ...默哀STAND SILENTLY!... ...为失去的同胞!默哀... 转载于:https://www.cnblogs.com/ue/archive/2008/05/19/1202455.ht ...

  4. 计算机上m键mm代表什么意思,M与MM分别代表什么?What does M and MM stand for?

    原标题:M与MM分别代表什么?What does M and MM stand for? Definition of M M的定义 The Roman numeral M is often used ...

  5. Go home or stand up

    转发: http://blog.sina.com.cn/s/blog_6ba803550100uf41.html 很早就看过这篇文章,后来有一段时间又找不到了.这里特意记录一下. 墨尔本的一个朋友Ti ...

  6. Xmemcached failure stand by

    Xmemcached stand by 2011-08-01 18:02:49|  分类: 缓存 |  标签: |字号大中小 订阅 Xmemcached在元旦左右准备发1.3这个版本,这个版本新增加的 ...

  7. X战警-最后战役 X-Men: The Last Stand

    X战警-最后战役 X-Men: The Last Stand 06 /16上映 制片:Avi Arad.Lauren Shuler Donner.Ralph Winter 导演:Brett Ratne ...

  8. Vi er i stand til veldig enkelt bilde parajumper jakke norge

    Skriften antyder: Det kan v?re Guds parajumpers jakke vilje du burde bli helliggjort: som du m? unng ...

  9. get the android sdk 下载,stand alone android sdk download

    2014年12月20日 - 圖1 按下stand-alone SDK Tools. Java程式教學甘仔店Android Eclipse 之SDK 下載與安裝(二). 二.進入Android SDK ...

  10. Spark 3.0.1环境搭建(stand alone模式)

    Spark 3.0.1环境搭建(stand alone模式) 1. 背景 Spark作为大数据分析处理引擎的准事实标准,本身并不能存储数据,只能做数据分析. Spark的运行需要依赖资源调度和任务管理 ...

最新文章

  1. ddr42400和2660混插_DDR4 2400和3000区别大吗 低频和高频内存性能差距对比
  2. Eclipse创建struts.xml
  3. 点按钮ajax get方法修改0或1状态封装成函数
  4. 神策数据:春节放假通知
  5. 主板和cpu搭配表_GTX1650显卡搭配知识:GTX1650配什么CPU和主板及多大电源?
  6. Rancher添加主机及对主机中的Docker容器进行图形化管理
  7. php提交飞信,php发送飞信消息
  8. 计组-I/O系统的基本概念
  9. How to Plan My Life?
  10. C++基础学习-20120516
  11. 搭建Demo验证在一次Socket请求中有借助缓冲区处理数据
  12. 数电实验1:五输入表决器
  13. Google Scholar 谷歌学术文献检索技巧总结
  14. 清华大学四连冠,南科大获得最高性能奖!国际大学生超算竞赛SC21结果出炉
  15. Rank Scores(分数排序)
  16. 没有比这个更详细的Elasticsearch教程
  17. html页面导出pdf截断问题,html2canvas 与 jspdf 相结合生成 pdf 内容被截断的终极解决方案...
  18. Python大牛用的贼溜,9个实用技巧分享给你
  19. source insight 绿色护眼主题暗色护眼主题
  20. 关于我是如何自学Java,一个自学网站推荐How2j

热门文章

  1. 三角兽散招实习面试题
  2. 服务器与虚拟机进行双机热备,基于虚拟机的双机热备高可靠协同办公系统
  3. (初学者)用python实现九九乘法表
  4. idea中项目前端网页图标不显示的原因
  5. setTimeout函数
  6. makefile warning: overriding recipe for target warning: ignoring old recipe for target 问题
  7. 买车选颜色纠结,汽车漆面养护还纠结?!
  8. opencv2和opencv3多版本共存
  9. jQuery快速入门(淘宝切换服饰、王者荣耀手风琴效果)
  10. Python爬虫爬取表情包+Autojs微信自动导入表情包脚本(附源码)