其实对每一次选择来说,出去期望都是一样的:
出去的期望:E;
第i道门时间花费绝对值:V[i];
对于i-th door:
选中i-th door的概率:1/n;
其次时间花费:
如果选了可以出去则:V[i];
转送回来再经选择才出去:v[i]+E;
则对i-th door 出去期望时间:1/n*v[i] 或1/n(v[i]+E);
所有门的期望和便是E.
ac code:
#include<iostream>
#include<cstdio>
using namespace std;
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int T,n;
int quantity,t;
int sum;
while(cin>>T)
{
int k=1;
while(k<=T)
{
cin>>n;
quantity=0;
sum=0;
for(int i=1;i<=n;++i)
{
scanf("%d",&t);
if(t<0)sum+=-t,quantity++;
else sum+=t;
}
cout<<"Case "<<k<<": ";
if(quantity==n)cout<<"inf\n";
else
{
t=gcd(n-quantity,sum);
cout<<sum/t<<"/";
cout<<(n-quantity)/t<<endl;
}
k++;
}
}
}