题目链接:
A Dangerous Maze
题目描述:
在一个迷宫中,你面对 n 扇门,给你进入每一扇门所花费的时间(x),如果是负数,那么就会花费x秒,并回到现在的位置,如果是正数,那么就会花费x秒走出迷宫,让你求走出迷宫所花费时间的期望值是多少?
解题思路:
AC代码:
#include<bits/stdc++.h>
#define up(i, x, y) for(int i = x; i <= y; i++)
#define down(i, x, y) for(int i = x; i >= y; i--)
#define maxn ((int)1e5 + 10)
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
int main()
{
int T; scanf("%d", &T);
up(case_, 1 ,T)
{
int n, sum1 = 0, sum2 = 0, z = 0;
scanf("%d", &n);
up(i, 1, n)
{
int x; scanf("%d", &x);
if(x > 0) sum1 += x, z++;
else sum2 += x;
}
printf("Case %d: ", case_);
if(z == 0) puts("inf");
else
{
int t = __gcd((sum1 + -sum2), z); // 化简
printf("%d/%d\n", (sum1 + -sum2) / t, z / t);
}
}
}