第二节 算法竞赛介绍
本教程是针对参加各种算法竞赛的同学们编写的。这一节主要介绍几种比较有名的算法竞赛。
OI(Olympiad in Informatics,信息学奥林匹克竞赛)
OI是Olympiad in Informatics的简称,1987年,保加利亚的Sendov教授在联合国教科文组织第24届全体会议上,倡议举行国际信息学奥林匹克,定名为International Olympiad in Informatics,简称IOI。OI是面向中学生的一年一度的信息学科竞赛。第一届国际信息学奥林匹克竞赛于1989年在保加利亚的布拉维茨举行。
考的内容主要是计算机编程。OI的比赛有NOIP,NOI,IOI等。NOIP是最初级别的比赛,分初赛和复赛,初赛为笔试,选出成绩优秀的选手参加复赛;复赛是上机编程,选出各个省市的一等奖,参加省级OI(NOIP是参加NOI的必备条件)。NOI是通过NOIP或各省省选选出的优秀选手组成省队参加的全国比赛。NOI选出全国一二三等奖,并选出国家集训队。
中国队参加8届大赛,届届名列前茅。中国队共计派出选手31人次,全部获奖,累计金牌17块、银牌6块,铜牌8块。在这种世界级别的智能大赛中,中国的娃娃们给参赛国的领队和选手留下了深刻的印象,盛赞“中国队是整体实力最强的队”。在波IOI’92 的发奖大会上,组委会为金牌得主设置了6台高档微计算机, 中国队捧回了3台。在IOI’94(瑞典),黄天明同学编的程序比组委会的标准答案运行速度快了20倍,组委会非常欣赏,派专人到中国队驻地索取原程序。1995年中国队首次派女选手参加IOI, 结果两位女选手杨域和林凌荣登金牌领奖台,填补了国际信息学赛事上女选手从未拿过金牌的空白,引起轰动。IOI’96(匈牙利)中国队经努力拼搏,4名选手夺得4枚金牌,实现了全“金”的突破,创造了新的纪录。近几年来,中国选手在国际信息学奥林匹克竞赛中表现优异,已连续三年在IOI中全部摘得金牌。
ACM-ICPC
ACM-Association for Computing Machinery,国际计算机学会。
ICPC-International Collegiate Programming Contest,国际大学生程序设计竞赛。
ACM国际大学生程序设计竞赛是由国际计算机学会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近40年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。赛事目前由IBM公司赞助。
赛事由各大洲区域预赛和全球总决赛两个阶段组成。各预赛区第一名自动获得参加全球总决赛的资格。决赛安排在每年的3-4月举行,而区域预赛一般安排在上一年的9-12月举行。一个大学可以有多支队伍参加区域预赛,但只能有一支队伍参加全球总决赛
竞赛进行5个小时,一般有11—13道试题,由同队的三名选手使用同一台计算机协作完成。当解决了一道试题之后,将其提交给评委,由评委判断其是否正确。若提交的程序运行不正确,则该程序将被退回给参赛队,参赛队可以进行修改后再一次提交该问题。竞赛结束后,参赛各队以解出问题的多少进行排名,若解出问题数相同,按照总用时的长短排名。总用时为每个解决了的问题所用时间之和。一个解决了的问题所用的时间是竞赛开始到提交被接受的时间加上该问题的罚时(每次提交通不过,罚时20分钟)。没有解决的问题不记时。美国英语为竞赛的工作语言。竞赛的所有书面材料(包括试题)将用美国英语写出,区域竞赛中可以使用其它语言。总决赛可以使用的程序设计语言包括pascal,c,c++及java,也可以使用其它语言。具体的操作系统及语言版本各年有所不同。
竞赛流程:1
2
3
4
5
6参赛队伍最多由三名参赛队员组成。
竞赛中一般命题10题左右,试题描述为英文,比赛时间为5个小时,前四个小时可以看到实时排名,最后一小时封榜,无法看到排名。
竞赛可以使用的语言:C++、C、Java和Pascal。但final赛只有C/C++;
重点考察选手的算法和程序设计能力,不考察任何Windows编程知识;
选手可携带任何非电子类资料,包括书籍和打印出来的程序等,部分赛区会对携带的资料进行限制;
评委负责将结果(正确或出错的类型)通过网络尽快返回给选手,除此之外不提供任何额外帮助;
返回结果:1
2
3
4
5
6
7Accepted. ---通过!(AC)
Wrong Answer. ---答案错。(WA)
Run Time Error. ---程序运行出错,意外终止等。(RTE)
Time Limit Exceeded. ---超时。程序没在规定时间内出答案。(TLE)
Presentation Error. ---格式错。程序没按规定的格式输出答案。(PE)
Memory Limit Exceeded. ---超内存。程序没在规定空间内出答案。(MLE)
Compile Error. ---编译错。程序编译不过。(CE)
ACM试题的特点:1
2
3
4严格的输入输出格式,有一点儿偏差都不能够AC;
对算法的高效有着极致的追求,即使算法正确,但是如果效率不高,也不能AC;
测试数据庞大,即使算法是正确的,不能应对极端的测试数据的话,也不能AC;
强调解决实际问题的能力,试题大多会有大篇幅的描述,需要有一定的读题能力,分析能力,当然,英语也很重要。
蓝桥杯
蓝桥杯由工业和信息化部人才交流中心举办,全称为:“全国软件专业人才设计与创业大赛”。包含个人和团队两个比赛项目。个人竞赛分为:C/C++本科A组,C/C++本科B组,C/C++高职高专组,java本科A组, java本科B组,java高职高专组,嵌入式设计与开发大学组,嵌入式设计与开发研究生组,单片机设计与开发本科组,单片机设计与开发高职高专组,电子设计与开发本科组,电子设计与开发高职高专组共12个组别。每位选手只能参加其中一个组别的竞赛。
蓝桥杯算法类比赛是一个比较新的比赛,到2016年共举办了七次,在国内外的知名度还不是很高。但是获得省赛一等奖以上可以获得IBM颁发的“高级软件工程师认证”和工信部颁发的“电子信息从业人员高级证书”。
参考资料:
IOI官方网站:<www.ioinformatics.org/>
ACM-ICPC:https://icpc.baylor.edu/
蓝桥杯官方网站:http://www.lanqiao.org/