- 1、本文档共18页,可阅读全部内容。
- 2、本文档付费后,不意味着付费购买了版权,只能用于单位或个人使用,不得用于商业用途(如:【转卖】进行直接盈利和【编辑后售卖】进行间接盈利)。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:18428362892(电话支持时间:9:00-19:00)。
序言
COCI 是Croatian Open Competition In Informatics (克罗地亚信息学公开赛)的简称,官
方网站为 。每年会举办包括 (克罗地亚信息学奥林匹克竞赛)之内的8
场比赛。除了COI 以外,其他7 场的形式都是3 个小时解决6 道题目。题目难度由容易到
较难,题目的分值依照难度从30 分到130 分不等。我个人认为题目质量还是相当高的,考
察的知识点一般都是信息学竞赛中常用的,不像某些比赛有考察很偏的内容。其中不乏非常
好的题目。
我希望有更多的中国选手能够了解这一比赛,所以写了这一份解题报告,相信对中国的
选手还是会有帮助的。由于时间关系,太简单的题目就略去了。
在写这篇解题报告的时候2009~2010 年度的比赛只进行完了6 场,所以这篇报告仅包含
前6 场的内容。
2
目录
序言 2
Contest1 4
MALI 4
GENIJALAC 4
ALADIN 5
Contest2 7
VUK 7
POSLOZI 7
PASIJANS 8
Contest3 9
RAZGOVORI 9
PATULJCI 9
PLANETE 10
Contest4 11
IKS 11
OGRADA 11
KABOOM 12
PALACINKE 14
Contest5 15
ZUMA 15
PROGRAM 15
CHUCK 16
Contest6 17
XOR 17
HOLMES 18
GREMLINI 18
3
Contest1
Contest1
MALI
有N 轮,每轮给出两个数A 和B ,然后你需要把至今为止的所有A 和所有B 配对,使
得和最大的一对和最小,回答这个和。
数据规模:N≤100000 , A , B≤100
我们很容易得到一个贪心的算法:把最小的A 和最大的B 配对,第二小的A 和第二大
的B 配对……最大的A 和最小的B 配对。但是这样单次的时间复杂度会是O() ,无法满足
要求。
解题的关键在于一个条件,所有A 和B 不超过100。利用这个条件,我们维护列表LA ,
LAi 表示大小为i 的A 有多少个,同理定义LB 。这样在得到新的A ,B 时,我们可以(1)的将
其插入。在回答询问时,我们只需维护两个指针p 和q ,设LAp 和LBq 的较小者为T,将两
者都减去T,得到T 对(LAp ,LBq ),然后继续移动两个指针即可。
( )
时间复杂度O(× + ) 。
GENIJALAC
给你一个 1 到N 的排列,这也是第0 次洗牌的结果。然后还有一个洗牌序列Q,洗牌
机会每次会把当前序列P 置换成这样一个序列C:Ci = PQi 。求第A 次到第B 次洗牌结果中,
满足对于洗牌结果 W,W = i (C≤i≤D )的洗牌结果数。
i
12
数据规模:C, D≤N≤500000,A , B≤10 。
( )( )
我们首先把洗牌序列Q 拆成若干置换圈。比如序列1,6,2,5,4,3拆成 1 2,6,3 (4,5)。将每
次洗牌的结果也用置换圈的形式表示出来。可以发现,对于每个长度为l 的置换圈,在经过
l 次洗牌后置换圈中的所有数的值都与它的下标相等。对于多个置换圈的情况,
文档评论(0)