思路:设期望值为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).
代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 "); 15 else if(n==m) printf("inf "); 16 else printf("%.2lf ",1.0*sum/(n-m)); 17 } 18 return 0; 19 }