YTU 2982: 奔跑吧,小明!
2982: 奔跑吧,小明!
时间限制: 1 Sec 内存限制: 128 MB
提交: 36 解决: 2
题目描述
小明陷入一个充满陷阱的密道之中,现在他要逃脱这里!到达密道的出口即可离开这处绝境!
现在给你小明出现在密道中的位置,还有出口的位置。而密道中每一个位置都有陷阱或者血瓶。遇到陷阱会减少生命值,遇到血瓶会增加你的生命值(包含出口)。每一个陷阱或者血瓶减少或着增加的生命值都是不确定的。
小明一次可以走一步或者两步或者三步。
另外小明还有一个神奇的技能,他可以瞬间跳过N个位置!
这个天赋技能的内容具体是这样的:小明可以从当前位置的标号处,跳到这个标号的两倍位置。例如当前位置标号为i,那么他可以一下子跳到2i处。但是这个技能有个特点,他将收到双倍伤害/生命。
例如i位置是陷阱,会对他造成10点伤害,那么小明施展这个技能跳到2i位置时,将受到20点伤害。反之,如果是血瓶,他将增加20点生命。
这条密道既充满着危险,也到处是机遇,小明想要在走出密道时收获最强大的生命力量!那么机智的你能否预算出小明能收获的最大的生命值呢?
前路充满风险和希望,奔跑吧,小明!
输入
数据有T组测试数据。
每组测试数据开始输入一个整数n,后面有n个整数(存在正负数)。正数表示血瓶,数值表示增加的生命值;负数表示陷阱,数值表示收到的伤害。
接下来输入一个整数q,表示q组询问。
每组询问由两个整数st和ed组成,分别代表初始位置和出口位置。
输出
每组询问输出一个数值,表示离开出口时小明能收获的最大生命值。
注意初始位置和出口位置造成的伤害或增加的生命值也要算进去。
样例输入
1
3
1 -2 3
1
1 3
样例输出
4
提示
样例解释:
密道长度为3。
分别是1,-2,3,即:
位置: 1 2 3
物品:血瓶(+1),陷阱(-2),血瓶(+3)。
小明出生在1位置,这时候他有4种选择,走一步,两步,三步,跳过去。
那么很显然,他可以绕过陷阱,直接走两步到达出口,即位置3。
此时可以收获4个生命力量,即最大生命值。

#include <stdio.h>
int a[1005],ed,ab;
void jisuan(int st,int s)
{
if(st==ed)ab=ab<s?s:ab;
else if(st<ed)
{
for(int j=0; j<4; j++)
{
if(j==0)jisuan(st+1,s+a[st+1]);
else if(j==1)jisuan(st+2,s+a[st+2]);
else if(j==2)jisuan(st+3,s+a[st+3]);
else if(j==3)jisuan(st*2,s+a[st]+a[st*2]);
}
}
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int m,q;
scanf("%d",&m);
for(int i=1; i<=m; i++)
scanf("%d",a+i);
scanf("%d",&q);
while(q--)
{
ab=-1005;
int st;
scanf("%d%d",&st,&ed);
jisuan(st,a[st]);
printf("%d\n",ab);
}
}
return 0;
}
YTU 2982: 奔跑吧,小明!的更多相关文章
- YTU 2983: 小明的生机!
2983: 小明的生机! 时间限制: 1 Sec 内存限制: 128 MB 提交: 16 解决: 2 题目描述 小明陷入一个充满陷阱的密道之中,现在他要逃脱这里!到达密道的指定位置即可离开这处绝境 ...
- 小明的密码-初级DP解法
#include #include #include using namespace std; int visited[5][20][9009];// 访问情况 int dp[5][20][9009] ...
- 小明系列问题――小明序列(LIS)
小明系列问题――小明序列 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- ACM 擅长排列的小明
擅长排列的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明十分聪明,而且十分擅长排列计算.比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想 ...
- ACM 懒省事的小明
懒省事的小明 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 小明很想吃果子,正好果园果子熟了.在果园里,小明已经将所有的果子打了下来,而且按果子的不同种 ...
- 管闲事的小明-nyoj51
描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,……,L,都种有一棵 ...
- HDU2096 小明A+B
入门级都没到的水题!看到顺便就做了,AC记录喜+1 Description 小明今年3岁了, 现在他已经能够认识100以内的非负整数, 并且能够进行100以内的非负整数的加法计算. 对于大于等于100 ...
- 小明A+B[HDU2096]
小明A+B Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- nyist 676 小明的求助
http://acm.nyist.net/JudgeOnline/problem.php?pid=676 小明的求助 时间限制:2000 ms | 内存限制:65535 KB 难度:2 描述 ...
随机推荐
- 【Codeforces 1083A】The Fair Nut and the Best Path
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 我们最后要的是一条最长的路径. 这条路径的权值和是所有点的权值和-所有边的权值和且这个值最大. 显然如果我们在某一条边上的累计的权值和< ...
- js总结(四):关于高性能
参考<高性能网站建设进阶指南> 不仅仅关注页面加载时间,也要关注下页面操作时的相应速度.页面操作是我们写程序中 实实在在需要的 1.使用局部变量 任何非局部变量,在函数中使用次数超过一次时 ...
- 把以100000+4位随机码的登录账号(比如1000001234),赋予制单页面的权限,怎么写sql啊
insert into sys_user_role (user_id,role_id,office_id) select id,'000101100000000004UP',company_id f ...
- [Go]结构体及其方法
结构体类型可以包含若干字段,每个字段通常都需要有确切的名字和类型.也可以不包含任何字段,这样并不是没有意义的,因为还可以为这些类型关联上一些方法,这里可以把方法看作事函数的特殊版本. 函数事独立的程序 ...
- 成为七牛云 Contributor -如何贡献 logkit 代码
logkit 是 Pandora 开源的一个通用的日志收集工具,可以将不同数据源的数据方便的发送到 Pandora 进行数据分析.除了基本的数据发送功能,logkit 还有容错.并发.监控.删除等功能 ...
- 【dp】E. Selling Souvenirs
http://codeforces.com/contest/808/problem/E 题意:给定n个重量为可能1,2,3的纪念品和各自的价值,问在背包总重量不超过m的条件下总价值最大为多少. 其中1 ...
- 《计算机网络课程设计》基本操作(基于Cisco Packet Tracer)
第一次课 Router> #用户模式 Router# #特权模式 lhx(config)# #全局配置模式 Router>enable #进入特权模式 Router#configure t ...
- [NOIP1999] 提高组 洛谷P1016 旅行家的预算
题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2.出发点每升汽油价格P和沿 ...
- 你创建线程池最好分为两种线程池,io密集型线程池,或者cpu密集型线程池
你创建线程池最好分为两种线程池,io密集型线程池,或者cpu密集型线程池. 否则,如果只用一个线程池的话,不管是iO密集的线程,或者cpu消耗大的都放在同一个线程池的话,会发生线程池被撑满的情况
- Win7查看本地是否安装JDK及安装路径的方法
工具/原料 win7 方法/步骤 1 开始->点击运行,输入:cmd 2 然后在命令提示符中,输入:java -version 假如看到有版本提示那么安装成功 3 假如忘记了java ...