关灯
护眼
字体:

比赛介绍及小说背景(第1页)

章节目录保存书签

【这不是第一章,这是比赛介绍及小说背景】

##比赛介绍

国际大学生程序设计竞赛(internationalcollegiateprograputingmachinery,acm)发起,时至今日仍有许多人习惯叫它acm竞赛。该竞赛被誉为计算机界的奥林匹克,世界上最聪明人的比赛。

##比赛模式

三人组队,在5小时內共用1台电脑,完成十余道算法题。

每道题会描述一套现实或虚构场景的数据处理需求,並给出输入数据的格式、范围,以及需求的输出的格式,数据不限於“数字”,可以有符號、字符,一切计算机可以保存的內容。

选手可以通过c、c++、java等语言完成数据处理的代码,提交到一个全自动的评测系统,该系统会在后台编译运行选手的代码,把隱藏的输入数据“餵”给运行的程序,获取程序的输出,进而將程序输出与答案比对,作为判断程序是否正確的依据。

在小说故事发生的时候,已经有“特殊评测”模式来处理答案不唯一的情况,即用一个额外的程序来判断选手程序的输出是否正確。

提交代码的次数不限,直到正確解出为止。

出於训练或交流需求,也会有不组队的个人赛。

##比赛规则

纸质开卷:可以携带任何纸质资料,不限內容与数量。禁止使用任何电子设备,如电子词典、u盘等,正规的线下赛禁止上网。不过当然会有一些训练属性的线上比赛,如果无监考的话,也就没什么限制了。

排名方式:以通过的题数、罚时进行排名,完成题数多的排名在前,题数相同情况下,罚时少的排名在前,罚时也相同的概率较小,当题数与罚时都相同时,排名依据多年以来有不少变化,细节不再赘述。

罚时计算方法:

某道题解出的时刻距离比赛开始的时长,计入总罚时。比如比赛第20分钟解出一道题,罚时就是20;第40分钟又解出一道题,总罚时就是20+40=60。

没有正確解出的题,不计算罚时。

当一道题正確通过之前有过若干次错误,每次错误罚时20分钟,可以把“分钟”理解为一个“惩罚分数”。比如第50分钟做出一道题,在这之前错了3次,罚时就是50+20*3=110。

##时代背景

小说发生在北京奥运到上海世博会这几年前后,是acm-icpc在国內刚开始大热的“田园时代”,以国內头部高校参赛为主,很多学校甚至拿不到现场赛名额,由於比赛难度极大,也很少有学校有能够指导这项赛事的教练,大多参赛选手都是凭著热爱为之努力,非常纯粹。

小说故事结束后,截至本书写作的2025年,acpc)”;acm不再赞助icpc,icpc独立成立基金会,比赛官方名称不再带有“acm”;赞助商从ibm变为华为;每场亚洲区域赛国內赛区从当初的一百余队发展到三百余队;小白书出了训练指南(大白书),出了第二版变成了紫色(紫书)等等。这些后续的发展並没有涵盖在本小说內容里,这里提及也是避免新时代的acmer对小说內容困惑。

如果本小说能得到大家喜欢,也许在未来有精力的话会再写一些新时代xcpc的故事。

##附:代码评测结果

阅读小说时,如有需求,在此查阅

常见的有如下结果:

-accepted(ac):正確通过,是唯一表示题目通过的结果

-pending:程序已录入资料库,正在等待评测。

-pendingrejudge:程序正在等待重测。

-compiling:程序正在被评测机编译。

-presentationerror(pe):程序输出的答案逻辑正確,但格式没有与评测数据的输出完全一致。

-wronganswer(wa):最常见的错误,即程序输出的结果不正確。

-timelimitexceeded(tle):程序运行时间超出了题目限制。

-memorylimitexceeded(mle):程序运行需要的內存超出了题目限制。

-outputlimitexceeded(ole):程序输出远远超出了评测数据答案的长度,可以理解为wronganswer,只是提示得更具体一些。

-runtimeerror(re):程序运行错误,包括不限於:段错误、浮点异常、尝试读写禁止的內存区域、调用了禁止的函数等。

-compileerror(ce):评测机无法成功编译程序,即对评测机而言,提交的代码存在语法错误,早年一些平台会將该结果计入罚时,后来普遍的规则是不计入罚时。

隨著时代的发展,也產生了更多的评测结果,这些细节不影响本小说的阅读。

章节目录