A - A Dangerous Maze

Lightoj 1027 A - A Dangerous Maze

//題目大意:一個迷宮有n個門,每個對應一個值,正值表示經過這麼多秒後直接出迷宮,負值代表這麼多秒後回到最開始的地方,問最後出去的期望
//思路:一次出去的概率爲n1/n期望爲n/n1,一次出去的平均時間問sum(t)/n,期望兩個相乘即,sum(t)/n1
#include <iostream>    
#include <stdio.h>    
#include <string.h>    
#include <stack>    
#include <queue>    
#include <map>    
#include <set>    
#include <vector>    
#include <math.h>    
#include <bitset>    
#include <algorithm>    
#include <climits>    
using namespace std;    

#define lson 2*i    
#define rson 2*i+1    
#define LS l,mid,lson    
#define RS mid+1,r,rson    
#define UP(i,x,y) for(i=x;i<=y;i++)    
#define DOWN(i,x,y) for(i=x;i>=y;i--)    
#define MEM(a,x) memset(a,x,sizeof(a))    
#define W(a) while(a)    
#define gcd(a,b) __gcd(a,b)    
#define LL long long    
#define N 1000005    
#define MOD 1000000007    
#define INF 0x3f3f3f3f    
#define EXP 1e-8    
#define lowbit(x) (x&-x)  

int gcd(int x,int y){
    if(y==0) return x;
    else return(gcd(y,x%y));
}

int lcm(int x,int y){
    return x*y/gcd(x,y);
}

int main()
{
    int T,n,x[105];
    scanf("%d",&T);
    for(int j=1;j<=T;j++)
    {
        int pos=0,sum=0;
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            scanf("%d",&x[i]);
            sum+=abs(x[i]);
            if(x[i]>0)
                pos++;
        }
        if(pos==0)
        {
            printf("Case %d: inf\n",j);
            continue;
        }
        //printf("gcd=%d",gcd(n*sum,pos));
        printf("Case %d: %d/%d\n",j,sum/gcd(sum,pos),pos/gcd(sum,pos));

    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章