题目

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

Data Constraint

Hint

对于30%的数据,n≤50。

对于100%的.据,n≤50000;A[i],B[i]≤50000。

分析

利用公式算出每个人的期望

显然任意两个人相遇的概率是相等的,=两人第一场相遇的概率+两人第一场不相遇的概率*两人第二场相遇的概率+……。

代码

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 using namespace std;
 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 }

转载于:https://www.cnblogs.com/zjzjzj/p/10500550.html

JZOJ 3055. 【NOIP2012模拟10.27】比赛相关推荐

  1. jzoj3058. 【NOIP2012模拟10.26】火炬手

    jzoj3058. [NOIP2012模拟10.26]火炬手 题目 Description Input Output Sample Input Sample Output Hint 分析 做法一 做法 ...

  2. jzoj 3058. 【NOIP2012模拟10.26】火炬手

    Description 全运会就要开始了,笨笨想成为湖南地区的火炬手,经过层层选拔,最终到了最后一关,这一关给出了一个正整数n(N<=100000),求一个最小的正整数m,使得n*m的十进制表示 ...

  3. JZOJ 5931. 【NOIP2018模拟10.27】冒泡排序

    Description 题目背景 冒泡排序的交换次数被定义为交换过程的执行次数. 题面描述 小 S 开始专注于研究⻓度为 n 的排列,他想知道,在你运气足够好的情况下(即每次冒泡排序的交换次数都是可能 ...

  4. JZOJ 5933. 【NOIP2018模拟10.27】百鸽笼

    Description Input 从文件 pigeon.in 中读入数据. 输入第一行包含两个正整数 n, m ,分别表示初始鸽笼数与操作个数. 第二行包含 n 个正整数,第 i 个数表示从左往右第 ...

  5. JZOJ 5932. 【NOIP2018模拟10.27】情报中心

    Description 题目背景 .飞纷火战来年近国 D 和国 C .飞乱子鸽来年近国 D 和国 C 题面描述 最近,C 国成功地渗透进入了 D 国的一个城市.这个城市可以抽象成一张有 n 个节点,节 ...

  6. JZOJ 3057. 【NOIP2012模拟10.26】电影票

    .. 分析: 代码: 分析: 我们通过找规律,可以得知答案为: 但我们直接通过高精度计算的话铁定TTT飞 所以我们将式子带入其中,就会发现分母和分子是可以约分的!并且分母可以被约掉 所以我们可以创建两 ...

  7. 【JZOJ B组】【NOIP2015模拟10.27】魔道研究

    Description "我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力." --<The Grimoire of Mar ...

  8. JZOJ 3053 【NOIP2012模拟10.25】旅行

    旅行 题目大意 给定一个 n n行mm列的字符矩阵, 告诉你哪些格子可以进入,哪些不可以.移动的规则为:每秒钟以上下左右四个方向之一移动一格,不能进入障碍. 计算:在空地中随机选择起点和终点(可以重合 ...

  9. 4270. 【NOIP2015模拟10.27】魔道研究

    Description "我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力." --<The Grimoire of Mar ...

  10. [NOIP2015模拟10.27] [JZOJ4270] 魔道研究 解题报告(动态开点+权值线段树上二分)

    Description "我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力." --<The Grimoire of Mar ...

最新文章

  1. linux 根目录下的子目录的意义
  2. ASP.NET中AJAX的UpdatePannel控件的用法
  3. 你到底有几个邮箱?码云账号增加多邮箱支持!
  4. 网易云信助春招上“云” ,疫情过后线上招聘或成常态
  5. 值得学习练手的22个Python迷你程序(附代码)
  6. Oracle入门(十四F)之PL/SQL定义变量
  7. C# 将PDF转为Excel
  8. 盘点IT中最热门的岗位,有你工作的岗位吗?
  9. 修改Chrome默认搜索引擎为Google.com
  10. 该虚拟机似乎正在使用中。 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏。 配置文件: D:\instractPath\Developmen
  11. 注册(四)之删除绑定
  12. 王庆的边缘计算(第三章)
  13. 家长进课堂 计算机ppt,家长进课堂之中华传统美德 成品ppt 三井小学一10班出品.ppt...
  14. 推荐几个值得关注的微信公众号
  15. opencv 应用程序无法正常启动0xc000007b
  16. ad room 拷贝
  17. Pinia的写法探索
  18. IDM下载器下载百度网盘文件
  19. python计算营业额代码_python计算营业额的代码_python 统计代码行数简单实例
  20. 晚明最后的辉煌-朝鲜之役

热门文章

  1. mysql悲观锁优化_MySQL事务及实现、隔离级别及锁与优化
  2. Javascript内置对象之Date对象与HTML BOM
  3. 调度 Cmax和∑Ci是什么区别
  4. DevOps使用教程 华为云(11)git分支怎么用 分支合并 评审
  5. 计算机上已安装某个第三方应用程序,防止电脑第三方软件“被”安装 3招彻底屏蔽不明软件...
  6. 生成检测报告在哪_惠检LIMS系统在材料检测行业的应用
  7. 微型计算机原理及应用论文,微型计算机原理及应用7030112997-TP19300101.pdf
  8. 7c盘满了怎么扩容_C盘爆满怎么办?扩容!
  9. c语言课程建设与改革,C语言程序设计课程教学改革的研究与实践
  10. em在聊天中是什么意思_被神化的EM菌,该怎样正确使用?