日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

10.30T2 二分+前缀和(后缀和)

發布時間:2025/3/18 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 10.30T2 二分+前缀和(后缀和) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

有兩個隊伍A和B,每個隊伍都有n個人。這兩支隊伍之間進行n場1對1比賽,每一場都是由A中的一個選手與B中的一個選手對抗。同一個人不會參加多場比賽,每個人的對手都是隨機而等概率的。例如A隊有A1和A2兩個人,B隊有B1和B2兩個人,那么(A1 vs B1,A2 vs B2)和(A1 vs B2,A2 vs B1)的概率都是均等的50%。
每個選手都有一個非負的實力值。如果實力值為X和Y的選手對抗,那么實力值較強的選手所在的隊伍將會獲得(X-Y)^2的得分。
求A的得分減B的得分的期望值。

Input

第一行一個數n表示兩隊的人數為n。
第二行n個整數,第i個數A[i]表示隊伍A的第i個人的實力值。
第三行n個整數,第i個數B[i]表示隊伍B的第i個人的實力值。

Output

輸出僅包含一個實數表示A期望贏B多少分。答案保留到小數點后一位(注意精度)。

Sample Input

2 3 7 1 5

Sample Output

20.0

Hint

【數據規模】
對于30%的數據,n≤50。
對于100%的.據,n≤50000;A[i],B[i]≤50000。 code: 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<iomanip> 5 #define N 100006 6 using namespace std; 7 long long a[N],b[N],sqsuma[N],sqsumb[N],suma[N],sumb[N]; 8 int main() { 9 int n; 10 cin>>n; 11 for(int i=1; i<=n; i++) { 12 cin>>a[i]; 13 } 14 for(int i=1; i<=n; i++) { 15 cin>>b[i]; 16 } 17 sort(a+1,a+n+1); 18 sort(b+1,b+n+1); 19 for(int i=n;i>=1;i--){ 20 sqsuma[i]=sqsuma[i+1]+a[i]*a[i]; 21 suma[i]=suma[i+1]+a[i]; 22 sqsumb[i]=sqsumb[i+1]+b[i]*b[i]; 23 sumb[i]=sumb[i+1]+b[i]; 24 } 25 long long A=0,B=0; 26 for(int i=1;i<=n;i++){ 27 int pos=upper_bound(b+1,b+n+1,a[i])-b; 28 long long now1=sqsumb[pos]; 29 long long now2=(n-pos+1)*a[i]*a[i]; 30 long long now3=2*sumb[pos]*a[i]; 31 A+=now1+now2-now3; 32 now1=(sqsumb0[1]-sqsumb[pos]); 33 now2=(pos-1)*a[i]*a[i]; 34 now3=2*(sumb[1]-sumb[pos])*a[i]; 35 B+=now1+now2-now3; 36 } 37 cout<<fixed<<setprecision(1)<<(long double)(B-A)*1.0/n; 38 return 0; 39 }

over

轉載于:https://www.cnblogs.com/saionjisekai/p/9879276.html

總結

以上是生活随笔為你收集整理的10.30T2 二分+前缀和(后缀和)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。