题解已经讲的很清楚了,就不鬼扯了,直接上代码
1 #include2 #define maxn 100005 3 double a[maxn],p[maxn]; 4 double qp(double base,int x){ 5 double ans=1; 6 while(x){ 7 if(x&1)ans=ans*base; 8 base=base*base; 9 x>>=1;10 }11 return ans;12 }13 int main(){14 int n,m;15 scanf("%d%d",&n,&m);16 int sum=0;17 for(int i=1;i<=n;i++){18 scanf("%lf",&a[i]);19 sum+=a[i];20 }21 for(int i=1;i<=n;i++)22 p[i]=a[i]/sum;23 double ans1=0;24 for(int i=1;i<=n;i++)25 ans1+=p[i]*p[i];26 ans1=ans1*m*(m-1)+m;27 double ans2=0;28 for(int i=1;i<=n;i++)29 ans2+=qp(1-p[i],m);30 ans2=n-ans2;31 printf("%.2lf\n%.2lf\n",ans1,ans2);32 return 0;33 }