hdu 4586 Play the Dice

思路:设期望值为s,前m个是再来一次机会,则有

s=(a[1]+s)/n+(a[2]+s)/n+……+(a[m]+s)/n+a[m+1]/n……

化简:(n-m)s=sum

当sum=0时,为0;

当n==m时,为inf;

否则为sum/(n-m).

代码如下:

 

 1 #include<cstdio>

 2 #define I(x) scanf("%d",&x)

 3 int main()

 4 {

 5     int n,m,t,sum;

 6     while(I(n)!=EOF){

 7         sum=0;

 8         for(int i=0;i<n;i++){

 9             I(t);

10             sum+=t;

11         }

12         I(m);

13         for(int i=0;i<m;i++) I(t);

14         if(sum==0) printf("0.00\n");

15         else if(n==m) printf("inf\n");

16         else printf("%.2lf\n",1.0*sum/(n-m));

17     }

18     return 0;

19 }
View Code

 

 

 

你可能感兴趣的:(play)