1. 程式人生 > >Dangerous Maze LightOJ

Dangerous Maze LightOJ

You are in a maze; seeing n doors in front of you in beginning. You can choose any door you like. The probability for choosing a door is equal for all doors.

If you choose the ith door, it can either take you back to the same position where you begun in xi minutes, or can take you out of the maze after xi minutes. If you come back to the same position, you can't remember anything. So, every time you come to the beginning position, you have no past experience.

Now you want to find the expected time to get out of the maze.

Input

Input starts with an integer T (≤ 100), denoting the number of test cases.

Each case contains a blank line and an integer n (1 ≤ n ≤ 100) denoting the number of doors. The next line contains n space separated integers. If the ith integer (xi) is positive, you can assume that the ith door will take you out of maze after xi minutes. If it's negative, then the ith door will take you back to the beginning position after abs(xi) minutes. You can safely assume that 1 ≤ abs(xi) ≤ 10000.

Output

For each case, print the case number and the expected time to get out of the maze. If it's impossible to get out of the maze, print 'inf'. Print the result in p/q format. Where p is the numerator of the result and q is the denominator of the result and they are relatively prime. See the samples for details.

Sample Input

3



1

1



2

-10 -3



3

3 -6 -9

Sample Output

Case 1: 1/1

Case 2: inf

Case 3: 18/1

題目大意:
大概就是每次選擇一個門,如果是正數,則花費ai時間就逃離,如果是負數,則花費-a[i]回到原地,求花費時間的期望

思路

感覺期望的題都是把和的期望換成期望的和,那麼顯然這題可以列出等式
E(x) = E[x1+x2+x3+x4…..+xn) 其中 xi就等於,在第i個門所花費的時間期望,
繼而等於 E(x1) + E(x2) + E(x3)+E(x4)+…….+E(xn)
那麼考慮每一個門的期望,當門是正數時,就是1/n*a[i]
當門是負數時期望是1/n*(a[i]+x) 其中x為期望 ,如果是無限種可能的大概都可以這麼搞
然後化簡就行了

accode

#include<bits/stdc++.h>
#define LL long long
#define INF 0x3f3f3f3f
#define lson rt<<1
#define rson rt<<1|1
using namespace std;
const int maxn = 1e5+53;
const LL mod = 998244353;
int T;
int n;
LL a[maxn];
int main()
{
    scanf("%d",&T);
    int ka = 1;
    while(T--){
        scanf("%d",&n);
        LL sum = 0;
        LL cnt = 0;
        for(int i = 1;i<=n;i++){
            scanf("%lld",&a[i]);
            sum+=abs(a[i]);
            if(a[i]>=0){
                cnt++;
            }
        }
        printf("Case %d: ",ka++);
        if(cnt<=0){
            puts("inf");
            continue;
        }
         LL gcd = __gcd(sum,cnt);
         printf("%lld/%lld\n",sum/gcd,cnt/gcd);
    }
}

相關推薦

[期望] A - A Dangerous Maze LightOJ - 1027

You are in a maze; seeing n doors in front of you in beginning. You can choose any door you like. The probability for choosing a door is equ

Dangerous Maze LightOJ

You are in a maze; seeing n doors in front of you in beginning. You can choose any door you like. The

[LightOJ 1027] A Dangerous Maze

amp with 不出 dangerous 分享 turn names ast ring A Dangerous Maze You are in a maze; seeing n doors in front of you in beginning. You can cho

LightOJ 1027 A Dangerous Maze 概率期望

但是 scan 公式 錯誤代碼 temp size 如果 gcd code   題目鏈接: https://vjudge.net/problem/LightOJ-1027   題目描述: 有N個門, 每個門的選擇是等概率的, 如果選擇到正數, 我將在正數秒後逃出迷宮, 如果

LightOJ-1395 A Dangerous Maze (II)

期望dp #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; ty

Lightoj 1027 Dangerous Maze (期望)

題意:你在一個迷宮裡,一共有n個門,走進每個門的概率是相同的,如果這個門是個正數(w)代表你將花費w的時間出去 如果是一個負數(-t)代表你將花費w的時間回到原點,回到原點後你選擇每個門的概率還是相同的。(求期望)  思路:根據期望的公式假設期望為a,第三個樣例a=1/3

LightOj 1027 A Dangerous Maze【概率】

題意: 你面前有n個門,每個對應一個數字,若為正xi,代表xi分鐘後你會從它走出迷宮,負數則說明你會在-xi分鐘後回到出發點且失去記憶。求出去的時間的期望。 程式碼: #include &

【期望dp】Lightoj 1027 A Dangerous Maze

一道很好的概率期望題目,沒用到dp不過,再次理解了統計平均(期望E) /* light_oj 1027 期望DP 並沒有什麼遞推 題意: n個傳送門,m個可以逃離,其他的 求解:

LightOJ 1027】A Dangerous Maze(期望)

題目大意: 一個迷宮中有n扇門,每扇門都有傳送耗時v。 v為正數,從該門可傳送出去,花費v時間 v為負數,從該門傳送仍會回到該處,花費-v時間 已知選擇每扇門概率一樣,每次傳送後不會記得上次的

LightOJ 1027-A Dangerous Maze

題意: 給你n個門,每個門有一個值,如果是正的,那麼就代表在x時間後會出去,如果是負的,那麼就會回到開始之後的x秒之後。問,最後出去時間的期望。 第一次做期望的dp就碰到這個題,還是看了某大神的解

lightoj 1027 A Dangerous Maze (概率)

Time Limit: 2 second(s) Memory Limit: 32 MB You are in a maze; seeing n doors in front of you inbeginning. You can choose any door you li

A Dangerous Maze(n次獨立重複試驗之幾何分佈)

題意 有n扇門,對應n個數,其中有正數有負數,你現在開始挑。 挑中正數等對應時間就可以出去,負數的話就等對應絕對值時間,清除記憶然後重挑。 問出去的時間期望,寫成p/q的最簡分數形式。 題解 由於清除記憶,顯然是n次獨立重複試驗。 全是負數顯然出不去,輸出

1027 A Dangerous Maze

                                        A Dangerous Maze You are in a maze; seeing n doors in front of you in beginning. You can choose

A Dangerous Maze (II)

題解:期望dp,設正確的門有a個,平均耗時為sum1,錯誤的門有b個,平均耗時為sum2。 狀態轉移分2部分: ①當i==k時,即已經記住k次走錯的門, ②當i<k時, #include<bits/stdc++.h> using namespac

1027 A Dangerous Maze 概率期望

題目連結 題意: 給定n個數,每次等概率的隨機選一個數,直到選到正數,詢問選到的數絕對值之和的期望,若為無窮大輸出inf 思路: 考慮每次選擇的貢獻為,結束的概率為選中正數的概率 ,兩者相乘就是最

A Dangerous Maze(概率與期望(求時間的期望))

【題目來源】:https://cn.vjudge.net/problem/LightOJ-1027 【題意】 處在一個迷宮裡,面前有n扇門,每一扇都可能帶離你走出迷宮,若能帶離,那麼會花費一個時間值

LightOJ1027-A Dangerous Maze

題意:一個迷宮裡面有N個門。每個門要麼把你傳送出迷宮,要麼把你傳送到原來的位置且你的記憶也會回到初始的時候。現在給出每個門傳送的時間t,若t為正數,說明該門花費時間t可以將你傳送出迷宮,若

A Dangerous Maze (期望)

題意: 迷宮n<=100扇門,每個門上面有個數字,要麼是正數,要麼是負數,選擇門的概率都相同且隨機 正數表示x秒後出去了,負數表示x秒後原地不變,求出去的期望 分析: 嘗

LightOJ 1370 Bi-shoe and Phi-shoe(歐拉函數)

cas 數字 url col div ase style while gin http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1370 題意: 給一些數Ai(第 i 個數),Ai這

LightOJ 1356 Prime Independence(質因數分解+最大獨立集+Hopcroft-Carp)

target pri 建圖 spa dfs cto rim %d 最大獨立集 http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1356 題意: 給出n個數,問最多能選幾個數,