• YTU 2983: 小明的生机!


    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%%
    ",se/zo*100);
            }
        }
        return 0;
    }
    

  • 相关阅读:
    redis数据结构
    XMAPP 的安装与配置
    Android 工具类 异常处理类CrashHandler
    Android Config通用类来记录信息
    Android AppUtil通用类
    Android 用Chrome浏览器打开url 自定义样式
    Diycode开源项目 如何解决InputMethodManager造成的内存泄漏问题
    Diycode开源项目 SitesListFragment分析
    Diycode开源项目 NodeListFragment分析
    Diycode开源项目 搭建可以具有下拉刷新和上拉加载的Fragment
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989684.html
Copyright © 2020-2023  润新知