题意:http://www.lightoj.com/volume_showproblem.php?problem=1027

求走出迷宫的期望时间。

  由于有的门会回到起点,所以有可能会走很多遍,设能走出去的门的个数为n1,总的个数为n,那么一次走出去的概率为n1/n,走一次的用的平均时间是sum(t)/n,走出来期望的次数为n/n1。

时间期望是:(sum(t)/n)*(n/n1)=sum(t)/n1。

走出来的期望时间 = 需要走次数的期望*平均走一次花费的时间
需要走次数的期望:假设门的总个数是n,可以走出来的门总个数是k,那么我们走出来期望的次数是 n/k.
平均走一次花费的时间: 总时间/n
#include<cstdio>
int gcd(int a,int b)
{
    return b==0?a:gcd(b,a%b);
}
int main()
{
    int T,t=1;
    scanf("%d",&T);
    while(T--)
    {
        int n,d;
        scanf("%d",&n);
        int n1=n;
        int sum=0;
        for(int i=0;i<n;i++)
        {
            scanf("%d",&d);
            if(d>0)
                sum+=d;
            else sum-=d,n1--;
        }
        printf("Case %d: ",t++);
        if(n1==0)
        {
            printf("inf\n");
            continue;
        }
        int q=gcd(sum,n1);
        printf("%d/%d\n",sum/q,n1/q);
    }
    return 0;
}

 

posted on 2017-11-08 09:04  云胡不喜。  阅读(128)  评论(0编辑  收藏  举报