- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ACM_瑞士轮及其解答.pdf
Description
【背景】
在双人对决的竞技性比赛,如乒乓球、羽毛球、国际象棋中,最常见的赛
制是淘汰赛和循环赛。前者的特点是比赛场数少,每场都紧张刺激,但偶
然性较高。后者的特点是较为公
平,偶然性较低,但比赛过程往往十分冗长。
本题中介绍的瑞士轮赛制,因最早使用于 1895 年在瑞士举办的国际象棋
比赛而得名。它可以看作是淘汰赛与循环赛的折衷,既保证了比赛的稳定
性,又能使赛程不至于过长。
【问题描述】
2*N 名编号为 1~2N 的选手共进行 R 轮比赛。每轮比赛开始前,以及所有
比赛结束后,都会按照总分从高到低对选手进行一次排名。 选手的总分
为第一轮开始前的初始分数加上已
参加过的所有比赛的得分和。总分相同的,约定编号较小的选手排名靠前。
每轮比赛的对阵安排与该轮比赛开始前的排名有关:第 1 名和第 2 名、
第 3 名和第 4 名、……、第 2K –1 名和第 2K 名、…… 、第 2N –
1 名和第 2N 名,各进行一场比赛。每场比赛胜者得 1 分,负者得 0 分。
也就是说除了首轮以外,其它轮比赛的安排均不能事先确定,而是要取决
于选手在之前比赛中的表现。
现给定每个选手的初始分数及其实力值,试计算在 R 轮比赛过后,排名
第 Q 的选手编号是多少。我们假设选手的实力值两两不同,且每场比赛
中实力值较高的总能获胜。
Input
输入的第一行是三个正整数 N、R、Q,每两个数之间用一个空格隔开,表
示有 2*N 名选手、R 轮比赛,以及我们关心的名次 Q。
第二行是 2*N 个非负整数 s , s , …, s ,每两个数之间用一个空格隔
1 2 2N
开,其中 s 表示编号为 i 的选手的初始分数。
i
第三行是 2*N 个正整数 w , w , …, w ,每两个数之间用一个空格隔开,
1 2 2N
其中 w 表示编号为 i 的选手的实力值。
i
Output
输出只有一行,包含一个整数,即 R 轮比赛结束后,排名第 Q 的选手的
编号。
Sample Input
2 4 2
7 6 6 7
10 5 20 15
Sample Output
1
Hint
对于 30%的数据,1 ≤ N ≤ 100;
对于 50%的数据,1 ≤ N ≤ 10,000;
对于 100%的数据, 1 ≤ N ≤ 100,000, 1 ≤ R ≤ 50, 1 ≤ Q ≤ 2N,
8 8
0 ≤ s , s , …, s ≤ 10 , 1 ≤ w , w , …, w ≤ 10 。
1 2 2N 1 2 2N
参考代码
#include stdio.h
#include algorithm
typedef struct PL
{
long d;
long s;
long w;
}P;
P p[2][1000000];
int comp(const void * a,const void * b)
{
P *pa = (P *)a;
P *pb = (P *)b;
if(pa-s pb-s)
{
return 1;
}
else if(pa-s == p
文档评论(0)