LightOJ 1027 A Dangerous Maze

题目链接:https://vjudge.net/problem/LightOJ-1027

知识点:  概率与期望

解题思路:    

  由输入可算出直接出去的概率 \(p\) 和回到原地的概率 \(q\),以及直接出去的用时的平均值 \(t_1\) 和回到原地的平均用时 \(t_2\) .设答案为 \(T\),则

  \(T = p \cdot t_1 + q \cdot (t_2 + T)\).

AC代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int x[110];
 4 int gcd(int a,int b){
 5     if(b==0)    return a;
 6     return gcd(b,a%b);
 7 }
 8 int main(){
 9     int T,n;
10     scanf("%d",&T);
11     for(int t=1;t<=T;t++){
12         printf("Case %d: ",t);
13         scanf("%d",&n);
14         int flag=0;
15         int t1=0,t2=0;
16         for(int i=1;i<=n;i++){
17             scanf("%d",&x[i]);
18             if(x[i]>0){
19                 flag++;
20                 t1+=x[i];
21             }
22             else
23                 t2-=x[i];
24         }
25         if(!flag)    printf("inf\n");
26         else{
27             int p1=flag,q1=n-flag;
28             int a1=t1+t2,a2=n-q1;
29             int tmp=gcd(a1,a2);
30             printf("%d/%d\n",a1/tmp,a2/tmp);
31         }
32     }
33     return 0;
34 }

 

posted @ 2018-03-02 00:18  Blogggggg  阅读(190)  评论(0编辑  收藏  举报