当前位置: 首页 > news >正文

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

相关文章:

  • 数据流的压缩、编码及传递困扰
  • Linux基础命令---mkisofs
  • Linux iptables开放特定端口
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • 线段树模板
  • KVO的使用
  • 自动化测试
  • Unicode编码字符 转换成汉字
  • 简单用户管理系统(P-05)
  • typedef 与指针、多维数组
  • 32、mysql数据库增删改查
  • Android -- 保存文件
  • ORACLE EXECUTE IMMEDIATE 用法详解
  • SpringMVC使用@ResponseBody输出字符串时遇到的乱码问题及解决办法
  • 【Advanced Windows Phone Programming】在windows phone 8中解码mp3 和编码pcm
  • Angular数据绑定机制
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Javascript设计模式学习之Observer(观察者)模式
  • js算法-归并排序(merge_sort)
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • MySQL-事务管理(基础)
  • node和express搭建代理服务器(源码)
  • Python_网络编程
  • Redis的resp协议
  • webpack+react项目初体验——记录我的webpack环境配置
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 大数据与云计算学习:数据分析(二)
  • 诡异!React stopPropagation失灵
  • 和 || 运算
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 京东美团研发面经
  • 理解在java “”i=i++;”所发生的事情
  • 利用DataURL技术在网页上显示图片
  • 前端js -- this指向总结。
  • 前端之React实战:创建跨平台的项目架构
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • scrapy中间件源码分析及常用中间件大全
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (9)目标检测_SSD的原理
  • (bean配置类的注解开发)学习Spring的第十三天
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .NET Remoting学习笔记(三)信道
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .net 流——流的类型体系简单介绍
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法