JZOJ 3055. 【NOIP2012模擬10.27】比賽
阿新 • • 發佈:2019-03-09
hint main 概率 如果 clear con 進行 scrip 參加
題目
分析
利用公式算出每個人的期望
顯然任意兩個人相遇的概率是相等的,=兩人第一場相遇的概率+兩人第一場不相遇的概率*兩人第二場相遇的概率+……。
代碼
1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 using namespacestd; 5 long long a[100001],b[101001],sum[100001],summ[100001]; 6 long long ans=0,cs; 7 int n; 8 int main () 9 { 10 11 cin>>n; 12 for (int i=1;i<=n;i++) 13 cin>>a[i]; 14 for (int i=1;i<=n;i++) 15 cin>>b[i]; 16 sort(a+1,a+1+n); 17 sort(b+1,b+1+n); 18 for (int i=1;i<=n;i++) 19 { 20 sum[i]=sum[i-1]+b[i]; 21 summ[i]=summ[i-1]+b[i]*b[i]; 22 } 23 long long j=0; 24 for (int i=1;i<=n;i++) 25 { 26 while (a[i]>b[j]&&j<=n) j++; 27 ans+=(j-1)*a[i]*a[i]-2*a[i]*sum[j-1]+summ[j-1]; 28 ans-=((n-j+1)*a[i]*a[i]-2*a[i]*(sum[n]-sum[j-1])+summ[n]-summ[j-1]); 29 } 30 double s=(double)(ans)/(double)(n); 31 printf("%.1f",s); 32 }
JZOJ 3055. 【NOIP2012模擬10.27】比賽