LightOj 1027 A Dangerous Maze
一个迷宫有n扇门,走第i扇门时间为xi,若xi为正,则走出迷宫,若xi为负,则回到原来位置并忘记已走过的门。问走出迷宫的时间期望,若不能走出迷宫输出inf,否则以分数形式输出p/q。
我们设期望为d 则所以对于任意n我们可以直接算出期望
#include <bits/stdc++.h> #define ll long long #define inf 0x3f3f3f3f using namespace std; const int N = 1e5+7; int a[108]; int main(){ // ios::sync_with_stdio(false); // cin.tie(0); int t; scanf("%d",&t); int w=0; while(t--){ int n; scanf("%d",&n); int lsum,rsum; lsum=rsum=0; int cnt=0; for(int i=1;i<=n;i++){ scanf("%d",&a[i]); if(a[i]>0){ rsum+=a[i]; }else{ lsum+=abs(a[i]); cnt++; } } if(n-cnt==0){ printf("Case %d: inf\n",++w); continue; } printf("Case %d: %d/%d\n",++w,(lsum+rsum)/__gcd((lsum+rsum),n-cnt),(n-cnt)/__gcd((lsum+rsum),n-cnt)); } }