A Dangerous Maze LightOJ - 1027

A Dangerous Maze      LightOJ - 1027

题目大意:

陷阱里有n扇门,x[1], x[2].......x[n],

若x[i]为正数,则经过x[i]的时间将会逃出陷阱,

若x[i]为负数,则经过abs(x[i])的时间将会回到起点

求:离开陷阱的期望值?

设期望为E,走一步就逃出陷阱的概率为p1,其平均时间为T1,

走一步回到原点的概率为p2,平均时间为T2.

注:(p1+p2=1)

所以:E = p1*T1 + p2*(T2+E) = ∑abs(Xi) / 正数个数

#include<cstdio>
#include<cstdlib>
int gcd(int a, int b)
{
    return b == 0? a : gcd(b, a%b);
}
int main()
{
    int T, n, i, z, count, sum;
    int x[120];
    scanf("%d", &T);
    for(z = 1; z <= T; z++)
    {
        count = 0;
        sum = 0;
        scanf("%d", &n);
        for(i = 1; i <= n; i++)
        {
            scanf("%d", &x[i]);
            if (x[i] < 0)
                count++;///负数的个数
            sum += abs(x[i]);///所有数绝对值之和
        }
        int m = n-count;///正数的个数
        if (count == n)
            printf("Case %d: inf\n", z);
        else
        {
            int t = gcd(sum, m);///最大公约数
            printf("Case %d: %d/%d\n", z, sum/t, m/t);
        }
    }
    return 0;
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值