比赛4.11

原创 2018年04月16日 11:15:24

题目描述

有两个队伍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的得分的期望值。

输入输出格式

输入格式:

第一行一个数n表示两队的人数为n。第二行n个数,第i个数A[i]表示队伍A的第i个人的实力值。第三行n个数,第i个数B[i]表示队伍B的第i个人的实力值。

输出格式:

输出仅包含一个实数表示A期望赢B多少分。答案保留到小数点后一位。

输入输出样例

输入样例#1:
2
3 7
1 5
输出样例#1:
20.0

首先暴力可以想到,两重循环枚举

for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(a[i]>b[j])
				res+=(a[i]-b[j])*(a[i]-b[j]);
			else 
				res-=(a[i]-b[j])*(a[i]-b[j]);
		}
	}
	double ans=(double)((res*1.0)/(n*1.0));
	printf("%.1lf",ans);

当然这是TLE,可以拿到30分

接下来很自然的谁想到前缀和优化,维护两个数组,Sum数组记录b数组的前缀和  Bin数组记录b的平方和的前缀和

经过一番简单的推导

#include<bits/stdc++.h>
#define N 50050
using namespace std;
long long n,a[N],b[N],Sum[N],Bin[N],oo=1,t;
int main() {
//	freopen("mat.in","r",stdin);
//	freopen("mat.out","w",stdout);
	scanf("%lld",&n);
	for(long long i=1; i<=n; i++)
		scanf("%lld",&a[i]);
	for(long long i=1; i<=n; i++)
		scanf("%lld",&b[i]);
	sort(a+1,a+n+1);
	sort(b+1,b+n+1);
	Sum[0]=Bin[0]=0;
	for(long long i=1; i<=n; i++) {
		Sum[i]=Sum[i-1]+b[i];
		Bin[i]=Bin[i-1]+b[i]*b[i];
	}
	for(long long i=1; i<=n; i++) {
		while(b[oo]<=a[i]&&oo<=n)oo+=1;
		t+=a[i]*a[i]*(oo-1-(n-(oo-1)));
		t-=2*a[i]*(Sum[oo-1]-(Sum[n]-Sum[oo-1]));
		t+=(Bin[oo-1]-(Bin[n]-Bin[oo-1]));//这三句是核心代码(其实很容易推)(完全平方公式)(a-b)^2=a^2-2*a*b+b^2
	}
	double ans=(double)((t*1.0)/(n*1.0));
	printf("%.1lf\n",ans);
	return 0;
}

junit-4.11需要注意的问题

下载了最新的JUnit版本,是4.11,结果尝试使用发现总是报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing这样的错误,上网查了...
  • zl544434558
  • zl544434558
  • 2013-10-12 13:51:08
  • 1348

易语言4.11完美破解补丁

  • 2008年10月09日 18:42
  • 5.91MB
  • 下载

C++Primer第五版 4.11.1节练习

练习4.34:根据本节给出的变量定义,说明在下面的表达式中将发生什么样的类型转换:(a) if (fval) //flaot转换成bool类型 (b) dval = fval + ival;//fva...
  • fengzhanghao23
  • fengzhanghao23
  • 2015-09-14 17:09:14
  • 811

WinRAR 4.11(32 / 64位)最新简体中文版 + 有效注册机

WinRAR 是一款功能强大的压缩包管理器,它是档案工具RAR 在 Windows 环境下的图形界面。该软件可用于备份数据,缩减电子邮件附件的大小,解压缩从 Internet 上下载的 RAR、ZIP...
  • BINGHEXIJIAN
  • BINGHEXIJIAN
  • 2012-05-24 20:15:59
  • 930

Advanced Office Password Recovery 4.11 专业版

  • 2012年11月15日 22:28
  • 3.99MB
  • 下载

netware4.11授权license文件

  • 2009年06月18日 18:06
  • 320B
  • 下载

daemontool4.11中文完美版daemontool4.11中文完美版

  • 2010年06月03日 12:47
  • 5.24MB
  • 下载

编程之美4.11的问题

首先,这道问题我还没有准确的答案,准备在这里一边写一边整理思路: 题目:不再重复了,涉及到图形,比较难以叙述清楚。写一些关键点:游戏盘为16x16。已知一共有40个地雷。除此之外唯一知道的信息是有8个...
  • houhouzhe
  • houhouzhe
  • 2011-06-13 19:30:00
  • 1072

PS抠图滤镜MaskPro4.11汉化中文版免费下载

  • 2010年04月23日 22:09
  • 1.58MB
  • 下载

C++Primer第五版 4.11.3节练习

练习4.36:假设i是int类型,d是double类型,书写表达式i *= d使其执行整数类型的乘法而非浮点类型的乘法。 答:double i *=d;练习4.37:用命名的强制类型转换改写下列旧式...
  • fengzhanghao23
  • fengzhanghao23
  • 2015-09-14 17:11:22
  • 865
收藏助手
不良信息举报
您举报文章:比赛4.11
举报原因:
原因补充:

(最多只允许输入30个字)