2983: 小明的生机!

时间限制: 1 Sec  内存限制: 128 MB

提交: 16  解决: 2

题目描述

小明陷入一个充满陷阱的密道之中,现在他要逃脱这里!到达密道的指定位置即可离开这处绝境!

现在给你小明出现在密道中的位置,还有出口的位置。

而密道中每一个位置都有陷阱或者血瓶。遇到陷阱会减少生命值,遇到血瓶会增加你的生命值(包含出口)。每一个陷阱或者血瓶减少或着增加的生命值都是不确定的。

小明一次可以向前走一步或者两步或者三步。

小明开始的时候生命力量为0,如果走出密道时的生命力量大于等于0,小明便生存成功。反之,小明便没有逃出这个危险的密道。

而你是一名先知,你需要做的便是指点小明的迷津,预测出小明生存成功的几率。

输入

数据有T组测试数据。

每组测试数据开始输入一个整数n,后面有n个整数(存在正负数)。正数表示血瓶,数值表示增加的生命值;负数表示陷阱,数值表示收到的伤害。

接下来输入一个整数q,表示q组询问。

每组询问由两个整数st和ed组成(st<=ed),分别代表初始位置和出口位置。

输出

每组询问输出一个双精度浮点数,表示小明生存成功的几率(带百分号)。

结果保留小数点后两位,并四舍五入。

注意初始位置和出口位置造成的伤害或增加的生命值也要算进去。

样例输入

1
3
1 -5 3
1
1 3

样例输出

50.00%

提示

样例解释:



密道长度为3。



分别是1,-5,3,即:



位置:    1  2     3



物品:血瓶(+1),陷阱(-5),血瓶(+3)。



小明出生在1位置,他需要走到3位置。



这时候有两种走法:



【1】每次走一步,走两次到达出口,最后生命值为-1,生存失败。



【2】直接走两步到出口,最后生命值为4,生存成功。



总共有两种走法,生存成功一次,生存几率为50.00%。



恭喜你,预测成功。

总是望着曾经的空间发呆,那些说好不分开的朋友不在了,转身,陌路。 熟悉的,安静了, 安静的,离开了, 离开的,陌生了, 陌生的,消失了, 消失的,陌路了。



#include <stdio.h>
int a[1005],ed;
double se,zo;
void jisuan(int st,int s)
{
if(st==ed)
{
zo++;
if(s>=0)se++;
}
else if(st<ed)
{
for(int j=0; j<3; 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]);
}
}
}
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--)
{
se=0,zo=0;
int st;
scanf("%d%d",&st,&ed);
jisuan(st,a[st]);
printf("%.2lf%%\n",se/zo*100);
}
}
return 0;
}

YTU 2983: 小明的生机!的更多相关文章

  1. YTU 2982: 奔跑吧,小明!

    2982: 奔跑吧,小明! 时间限制: 1 Sec  内存限制: 128 MB 提交: 36  解决: 2 题目描述 小明陷入一个充满陷阱的密道之中,现在他要逃脱这里!到达密道的出口即可离开这处绝境! ...

  2. 小明的密码-初级DP解法

    #include #include #include using namespace std; int visited[5][20][9009];// 访问情况 int dp[5][20][9009] ...

  3. 小明系列问题――小明序列(LIS)

    小明系列问题――小明序列 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit ...

  4. ACM 擅长排列的小明

    擅长排列的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 小明十分聪明,而且十分擅长排列计算.比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想 ...

  5. ACM 懒省事的小明

    懒省事的小明 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述       小明很想吃果子,正好果园果子熟了.在果园里,小明已经将所有的果子打了下来,而且按果子的不同种 ...

  6. 管闲事的小明-nyoj51

    描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,……,L,都种有一棵 ...

  7. HDU2096 小明A+B

    入门级都没到的水题!看到顺便就做了,AC记录喜+1 Description 小明今年3岁了, 现在他已经能够认识100以内的非负整数, 并且能够进行100以内的非负整数的加法计算. 对于大于等于100 ...

  8. 小明A+B[HDU2096]

    小明A+B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  9. nyist 676 小明的求助

    http://acm.nyist.net/JudgeOnline/problem.php?pid=676 小明的求助 时间限制:2000 ms  |  内存限制:65535 KB 难度:2   描述 ...

随机推荐

  1. asp.net 页面缓存、数据缓存

    页面缓存,webform框架的aspx页面,服务器引擎生成的页面可以被缓存.

  2. 亲历dataguard的一些经验问答题

    问题1:是否log_archive_dest_n=service中进程使用lgwr时(如log_archive_dest_2='service=DBSTD LGWR SYNC'),备库就一定要建立st ...

  3. ES6关于Promise的用法详解

    Node的产生,大大推动了Javascript这门语言在服务端的发展,使得前端人员可以以很低的门槛转向后端开发. 当然,这并不代表迸发成了全栈.全栈的技能很集中,绝不仅仅是前端会写一些HTML和一些交 ...

  4. CodeForce 448C 木片填涂问题

    题目大意:有多片木片需要填涂,可以每次横着涂一行,也可以一次涂一列,当然你涂一行时遇到中间长度不够高的木片,填涂到此中断 这题目运用dfs能更容易的解出,虽然还是十分不容易理解 #include &l ...

  5. CodeForces - 320B Ping-Pong (Easy Version)

    题目最开始 完全不懂 配合案例也看不懂-_- 总之就是用传递性 问能否从a区间到b区间 dfs(x,y) 走遍与第x区间所有的 联通区间 最后检验 第y区是否被访问过 是一道搜索好题 搜索还需加强 # ...

  6. POJ 2391 多源多汇拆点最大流 +flody+二分答案

    题意:在一图中,每个点有俩个属性:现在牛的数量和雨棚大小(下雨时能容纳牛的数量),每个点之间有距离, 给出牛(速度一样)在顶点之间移动所需时间,问最少时间内所有牛都能避雨. 模型分析:多源点去多汇点( ...

  7. ***js常用方法汇总(源自实际中的项目)

    Q: 400-819-0717转8888,取后四位分机号 A: 方法一: alert("abcdefg".slice(-4));方法二:var str= "abcdefg ...

  8. 各种ORM框架对比(理论篇,欢迎来观摩,并且纠正部分错误,防止误区)

    各种ORM框架对比 目前框架有以下 PetaPoco Dapper.NET Massive Simple.Data Chain PetaPoco 轻量级,以前单文件,目前有维护形成项目级别,适合多个数 ...

  9. 寒武纪camp Day4

    补题进度:7/11 A(博弈论) 略 B 待填坑 C(贪心) 题意: 一个序列是good的当且仅当相邻两个数字不相同.给出一个长度为n的数列,每个数字是ai.定义一种操作就是把a中某个元素拿到首位去, ...

  10. Hibernate学习笔记(四)

    我是从b站视频上学习的hibernate框架,其中有很多和当前版本不符合之处,我在笔记中进行了修改以下是b站视频地址:https://www.bilibili.com/video/av14626440 ...