题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=4586
解题思路:
只考虑第一次,获得的金币的平均值为sum/n.sum为所有色子的面的金币值相加。
对于运气好,摇中了可以再来一次,该轮就能获得m/n*(sum/n)
运气好,又再来一次,该轮能获得(m/n)^2*(sum/n)
无穷无尽的摇下去,一共能获得sum/n*(1+p + p^2+`````+p^k + ````),其中p = m/n
将式子化简,就能得到E = sum/(n-m)。所以当sum = 0时为0,n=m时为inf。其余就为sum/(n-m)。
贴代码:
#include<cstdio>
int main()
{
// freopen("in.c","r",stdin);
int n,m,a;
while(~scanf("%d",&n))
{
int sum =;
for(int i=; i<n; ++i)
{
scanf("%d",&a);
sum += a;
}
scanf("%d",&m);
for(int i=; i<m; ++i)
scanf("%d",&a);
if(sum == ) printf("0.00\n");
else if(n == m )printf("inf\n");
else printf("%.2f\n",(double)sum/(n-m));
}
return ;
}