The Last Stand
The Last Stand
https://ac.nowcoder.com/acm/contest/303/L
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
当刀锋女王的生命值小于等于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]互不相同。
输出描述:
对于每组数据,请输出一行一个正整数表示刀锋女王在选择最优策略的情况下到达人族基地时自身生命的最大值。
输入例子:
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
-->
输入
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。
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<cstdio>
#include<vector>
typedef long long ll;
using namespace std; struct sair{
ll pos,val,delta;
}a[]; ll dp[]; int main(){ ll n,m,h;
int _;
for(cin>>_;_;_--){
cin>>n>>m>>h;
for(int i=;i<=n;i++){
cin>>a[i].pos>>a[i].val>>a[i].delta;
}
a[n+].pos=m,a[n+].val=,a[n+].delta=;
for(int i=;i<=n+;i++){
dp[i]=h;
}
for(int i=;i<=n;i++){
ll tmp=dp[i]+a[i].val;
if(tmp>){
for(int j=i+;j<=n+;j++){
tmp=dp[i]+a[i].val+(a[j].pos-a[i].pos)*a[i].delta;
dp[j]=max(dp[j],tmp);
}
}
}
cout<<dp[n+]<<endl;
} }
The Last Stand的更多相关文章
- uva 11174 Stand in a Line
// uva 11174 Stand in a Line // // 题目大意: // // 村子有n个村民,有多少种方法,使村民排成一条线 // 使得没有人站在他父亲的前面. // // 解题思路: ...
- Linux中的两种守护进程stand alone和xinetd
Linux中的两种守护进程stand alone和xinetd --http://www.cnblogs.com/itech/archive/2010/12/27/1914846.html#top 一 ...
- 数学:UVAoj 11174 Stand in a Line
Problem J Stand in a Line Input: Standard Input Output: Standard Output All the people in the bytela ...
- Xtreme9.0 - Taco Stand 数学
Taco Stand 题目连接: https://www.hackerrank.com/contests/ieeextreme-challenges/challenges/taco-stand Des ...
- 【linux】【进程】stand alone 与 super daemon 区别
本文引用自 鸟哥的linux私房菜如果依据 daemon 的启动与管理方式来区分,基本上,可以将 daemon 分为可独立启动的 stand alone , 与透过一支 super daemon 来 ...
- Statelessness Provide credentials with the request. Each request MUST stand alone and should not be affected from previous conversation happened from same client in past.
The server never relies on information from previous requests. Statelessness As per the REST (REpres ...
- [转]ORA-38500: USING CURRENT LOGFILE option not available without stand
标签: oracle 10g 数据库 ora-38500 it 分类: IT author:skate time :2009/08/03 在dataguard启用实时恢复的时候,报如下错误: ORA- ...
- stand up meeting 12-3
因为前后端在参数传递定义不清晰的原因,今天士杰和国庆采用了pair programming的方法,在一台电脑前工作了四十分钟,明确了请求questionpool,请求question,请求rank d ...
- stand up meeting 12-2
今天因为各位组员组里项目原因没有集中在一起进行stand up meeting.但是士杰和天赋国庆分别对项目进度和前后端的结合进行的沟通. 针对后端部分,天赋完成了GetRankingData API ...
随机推荐
- R语言学习——欧拉计划(11)Largest product in a grid
Problem 11 In the 20×20 grid below, four numbers along a diagonal line have been marked in red. 08 0 ...
- 操作系统:Android(Google公司开发的操作系统)
ylbtech-操作系统:Android(Google公司开发的操作系统) Android是一种基于Linux的自由及开放源代码的操作系统.主要使用于移动设备,如智能手机和平板电脑,由Google(谷 ...
- 杂项:Nuget
ylbtech-杂项:Nuget Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基于.NET Framework的应用时,Nug ...
- [转]关于vs2005、vs2008和vs2010项目互转的总结
关于vs2005.vs2008和vs2010项目互转的总结 分类: Asp.Net2010-11-16 16:59 18239人阅读 评论(12) 收藏 举报 2010.net框架编译器 有做.net ...
- [UE4]IES光源概述文件
IES Light Profiles(IES光源概述文件) 是一条曲线,该曲线在一段弧线中定义了光源强度,虚幻引擎4将会围绕某个轴旋转该弧线,从而使得 点光源 (和从技术上讲的 聚光源,下面会提供更多 ...
- 自己写的jQuery颜色插件
界面效果: 插件js代码: ;(function ($) { //122种颜色 var aColors = [ "ff0000", "ffff00", &quo ...
- 浅析PHP7新功能及语法变化总结
标量类型声明 有两种模式: 强制 (默认) 和 严格模式. 现在可以使用下列类型参数(无论用强制模式还是严格模式): 字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 ...
- spark-submit 提交Application
在spark1.0中推出spark-submit来统一提交applicaiton ./bin/spark-submit \ --class <main-class> --master &l ...
- MySQL 创建数据库的两种方法
使用 mysqladmin 创建数据库 使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库. 所以我们这边使用root用户登录,root用户拥有最高权限,可以使用 mysql mys ...
- python之路_函数实例及装饰器介绍
一.习题讲解 1.写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组.例如:[(‘红心’,2), (‘草花’,2), …(‘黑桃,‘A’)] def cards(): num=[] for v ...