• 编程
  • ACM、OI、IOI、CSP-J/S编程竞赛模式介绍

  • @ 2022-11-14 0:36:37

介绍一下目前主流的编程比赛:

  • ICPC是国际大学生程序设计竞赛(ACM International Collegiate ProgrammingContest(ACM-ICPC或ICPC)是由美国计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近30多年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。
  • CCPC中国大学生程序设计竞赛(China Collegiate Programming Contest) 是由中国大学生程序设计竞赛协会主办的面向世界大学生的国际性年度赛事,旨在激励当代大学生运用计算机编程技术和技能来解决实际问题,激发其学习算法和程序设计的兴趣,培养其团队合作意识、创新能力和挑战精神。
  • IOI是国际信息学奥林匹克竞赛 (International Olympiad in Informatics),是面向中学生的一年一度的信息学科竞赛。举办历史较长,第一届国际信息学奥林匹克竞赛于1989年在保加利亚举行。
  • NOI全国青少年信息学奥林匹克竞赛(简称NOI,National Olympiad in Informatics)是中国计算机学会举办的全国青少年计算机程序设计竞赛。
  • NOIP是全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces)自1995年举办至今,每年由中国计算机学会统一组织,为NOI的前序赛事之一。该赛事为国家教育部白名单赛制,为中学生五大联赛之一,面向中学生参加。
  • CSP-J/S非专业级别软件能力认证(Certified Software Professional-Junior/Senior),该赛事于2019年9月开始由中国计算机学会举办,主要面向全国青少年的一项计算机程序设计竞赛,其前身是NOIP,目前作为NOIP的一项前序赛事,主要面向中小学生参加。

再普及一些常见的竞赛术语:提交反馈实时排名按点给分题数罚时测试点(测试用例)等。

  • 提交反馈:一般为“通过AC”、“答案错误”、“运行超时”等等反馈
  • 实时排名:比赛中能看到排名,如ACM赛制
  • 全有或全无:只有通过全部测试点才算通过,只要有一个测试点不通过就不能AC(答案accept)
  • 按点给分:每道题有多个测试点,通过几个测试点就给相应分值
  • 题数罚时:题数多者排名靠前,只有当题数相同时才比较时间,时间少者排名靠前,或再比较罚时,罚时为提交错误答案给予相应的罚时,罚时和比赛时间没有关系,只用来排名,每做错一道题会有罚时相加,罚时少排名靠前。

目前大部分赛事的比赛赛制都是根据或者沿用上述主流比赛的赛制规则进行,所以编程比赛中最常见的三种赛制为:ACM赛制、OI赛制、IOI赛制

  • ACM赛制:每道题提交之后都有反馈,但看不到错误的测试样例(leetcode周赛可以看到),每道题都有多个测试点,每道题必须通过了所有的测试点才算通过。每道题不限制提交次数,没通过的话会有罚时,比赛过程中可以看到实时排名,通过题数相同的情况下按照答题时间+罚时来排名。先看通过的题目数量,单独绿色表示通过,然后看罚时,罚时短的靠前,每个题目下面黑色数字表示做出这个题的时间,然后把ac的题的时间数累加到罚时中,其间每一次提交运行结果被判错误的话将被加罚20分钟时间,未正确解答的试题不记时。红色- 表示没通过的题和错误提交次数,蓝色的表示比赛结束后的通过。 ACM赛制的比赛:ICPC、CCPC、codeforces、leetcode周赛及全国编程大赛、传智杯
  • OI赛制:每道题提交之后都没有反馈,根据每道题通过的测试点的数量获得相应的分数。每道题不限制提交次数,如果提交错误没有任何惩罚,仅以最后一次提交为准,赛后按照总得分来排名。 OI赛制的比赛:NOI、CSP-J/S、考研机试、蓝桥杯、计算机能力挑战赛。
  • IOI赛制:每道题提交之后都有反馈,可以实时看到自己每道题得了多少分,但看不到错误的测试样例。每道题都有多个测试点,根据通过的测试点的数量获得相应的分数。每道题不限制提交次数,如果提交错误没有任何惩罚。比赛过程中一般可以看到实时排名,按照总得分来排名。IOI赛制是结合了OI赛制和ACM赛制的特点。 IOI赛制的比赛:PAT、团体程序设计天梯赛、CCF、洛谷月赛。
  • 乐多赛制 洛谷首创的赛制。这种赛制较IOI赛制刺激一些,因为提交错了,下一次提交打95折,一直到你AC或者扣到7折为止。这种赛制保留了IOI赛制和ACM赛制的优点。 Trips: 打乐多赛制时,​不要盲目提交​(因为提交错了会打95折,当然如果你已经扣到了原来的7折,交了也无妨),应检查几遍,确保没有低级错误(如数据范围暗示你XX变量要开long long,但你没开)后,再提交。AC了最好,若未AC(如WA/RE/TLE/MLE,下简称UAC),先估一下下次提交要得多少分,比如你第一次提交得了98分,那你不用再提交了(本文中所有题目满分100分),因为下一次提交最多只能得95分,​捡了芝麻丢了西瓜。 顺便给一下0.95的次方表:
次方数 0 1 2 3 4 5 6 7 8
得数(四舍五入至两位小数) 1.00 0.95 0.90 0.86 0.81 0.77 0.74 0.70 0.66

所有赛制对比表

赛制 提交反馈 实时排名 计分方式 排名方式 相关比赛
ACM制 全有或全无 题数+时间 ICPC、CCPC、牛客小白赛、传智杯
OI制 按点给分 分数 NOI、计算机能力挑战赛、蓝桥杯
IOI制 PAT、团体程序设计天梯赛、CCF
乐多制 按点给分-提交次数扣分 BCOI、洛谷

注意Tips: OI赛制和IOI赛制没有提交限制,提交错误也没有惩罚,所以可以大胆地提交,但ACM赛制的罚时会很大拉开差距。

最后关于CSP-J/S 的赛制说明:鉴于该赛事是线下离线方式进行,该赛制大体沿用OI赛制,但是又有一些区别。

  1. 非专业级别较之专业级别更为简单(编者注:其实题目并不简单),将分两个级别进行,分别为CSP-J(入门级,Junior)和CSP-S(提高级,Senior),均涉及算法和编程。
  2. CSP-J和CSP-S均分别举办两轮:CSP-J1,CSP-S1及CSP-J2、CSP-S2,认证方式均为现场认证,非网络认证。参加CSP-J/S第二轮,必须先参加第一轮,达到一定的分数者方可参加第二轮(具体细则见官网发布)。
  3. CSP非专业认证不设年龄、性别限制,在校生和在职人员均可参加,但必须经主办单位审核通过。(主要面向中小学生)

CSP-J/S每年9-10月份进行第一轮初赛,考核内容为计算机、编程、算法等相关理论知识以及程序算法部分,题型均为选择题,大部分省份采用为笔试方式(少部分省份采用人机方式答题)

第一轮初赛通过后的选手可以报名参加第二轮赛事,考核内容为4道算法编程题(范围详见考试大纲),考试方式为离线模式的OI赛制。即考生考试时间内电脑离线编程,无法当时在线提交题目得知结果,也无任何反馈信息,只能考生自己进行离线编程和测试后,赛后统一提交考试源代码文件。主办方全部收取考生代码后,于试后统一提交电脑进行评测打分,打分方式参考OI赛制,并在官网公布考生成绩,然后各省份分别划定分数线进行评级。

0 条评论

目前还没有评论...