竞赛用计算机,我所知道的计算机竞赛26——信息学比赛常用赛制

2023-10-28 03:50

本文主要是介绍竞赛用计算机,我所知道的计算机竞赛26——信息学比赛常用赛制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

信息学比赛多,赛制也很复杂,最常用的有三种,这里分别介绍。01

—OI赛制

CCF组织的比赛大部分都是OI赛制,所以最先介绍。

我曾经参加的两次联赛(NOIP的前身),和现在的赛制差别很大,评测很原始,而且两年也是不一样的。

第一年是人工判,选手不在场,评卷老师会看每个选手的代码,和数学竞赛改卷类似,主观打分;第二年变成评卷老师和选手一起,运行程序输入测试点,根据输出判定对错。

这两种评测都非常耗时,需要评卷老师手工做,如果选手多,工作量是非常大的,而且容易出错。

现在的评测都是机器自动进行,从人工输入变成了文件输入输出,也因此代码里需要有重定向的语句。每道题都有多个测试点,根据每道题通过的测试点的数量获得相应的分数。

在比赛的时候没有任何反馈,比赛过程中看不到实时排名,赛后按照总得分来排名。

这个赛制本质上是“高考赛制”,大家一起交卷,最后交给CCF一起判分。从选手的角度来看不稳定性极高,经常会出现爆零的情况,新手最常见的错误就是文件输入输出问题。

然而CCF组织全国大规模的比赛,OI赛制是目前最优的方式。各地组织者只需要收集好选手的程序及时发给CCF,不需要网络等各种复杂的设置。

OI赛制的比赛:CSP-J/S,NOIP, 省选,NOI、WC等。02

—ACM/ICPC赛制

ICPC的全称是国际大学生程序设计竞赛(International Collegiate Programming Contest),是由美国计算机协会(ACM)从1970年开始主办的,但是从2018年起,ACM不再提供赞助。但是很多人还是习惯叫它ACM竞赛。

ICPC进行5个小时,一般有7道或以上试题,由同队的三名选手使用同一台计算机协作完成。

每道题提交之后都有反馈,可以看到“通过”、“运行错误”、“答案错误”等等结果,但看不到错误的测试样例,每道题都有多个测试点,每道题必须通过了所有的测试点才算通过。每道题不限制提交次数,以最后一次提交为准。比赛过程中可以看到实时排名。

参赛各队以解出问题的多少进行排名,若解出问题数相同,按照总用时的长短排名。总用时为每个解决了的问题所用时间之和。一个解决了的问题所用的时间是竞赛开始到提交被接受的时间加上该问题的罚时(每次提交如果没有通过,罚时20分钟)。没有解决的问题不记时。

ICPC是队式赛,赛制的优点是“综合考量”,相比起OI选手,ACMer需要考虑诸如罚时、顺序、码量等因素,把重点从单纯的脑力竞赛变成了脑力+临场应变+判断力等多重能力的考察,这对于大学生来说更加有意义。

ICPC比赛很有趣,现场会发气球,通过一道题会给队伍发对应颜色的气球,最后一个小时会封榜,可以通过气球数量看每个队伍的通过题数,赛场上气氛很热烈,往往通过一道题同队的队员会一起欢呼,观赏性很强。

下面这张图片可以看到选手们背后的墙上有很多不同颜色的气球,这张照片应该是比赛没有多久拍摄的,大部分气球还没发出去,每个桌子旁边的塑料袋里是发的食物,五个小时的比赛,大家饿了可以吃东西。

221587329_1_20210507111132614

ACM赛制的比赛:ICPC、CCPC、小米ICPC、字节跳动Byte Camp冬令营等。03

—IOI赛制

IOI赛制是国际上的信息学标准赛制,每道题提交之后都有反馈,可以看到“通过”、“运行错误”、“答案错误”等等结果,可以实时看到自己每道题得了多少分,但看不到错误的测试样例。每道题都有多个测试点,根据每道题通过的测试点的数量获得相应的分数。

每道题不限制提交次数,如果提交错误没有任何惩罚,仅以最后一次提交为准。比赛过程中一般可以看到实时排名,如果是考试,一般看不到排名。

IOI赛制是子任务取最高分,也就是说你如果只会做子任务1和3,那么可以子任务1写一份代码,子任务3写一份代码,分别提交,不用花时间把两个代码拼起来。

IOI赛制是对会做选手最友好的赛制,有及时反馈,提交后发现错误可以改代码,一题交多少次都没有惩罚,因此只要你最终能改对,那么会做的分总能拿到。并且还能尽可能地帮助选手省时间:如果过了,就不用浪费时间对拍检查,可以专心做别的题,免得因为检查而来不及写会做的题。

IOI国际比赛期间选手看不到实时排名,但是场外的观众能够看到,所以也非常有趣,可以说,IOI赛制是结合了OI赛制和ACM赛制的特点。

IOI赛制虽然很好,但是在实现过程中缺点也比较多,比如出题人和比赛组织方工作量大,对题目要求高,评测系统要足够稳定,需要强大的评测机等等。

CCF从2017年开始,国家队的集训选拔开始使用IOI赛制,因为集训的时候所有人员集中在一起,人数也不多,所以比较容易实现。

IOI赛制的比赛:CTSC,APIO,CSP,CCF CCSP,IOI,线上各种比赛等 。

声明:

文章内容都是从官网和其他渠道搜集的信息整理总结,如有错误请批评指正。

创作不易,如有转载请注明出处。感谢支持!

这篇关于竞赛用计算机,我所知道的计算机竞赛26——信息学比赛常用赛制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/290505

相关文章

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

Python将字符串转换为小写字母的几种常用方法

《Python将字符串转换为小写字母的几种常用方法》:本文主要介绍Python中将字符串大写字母转小写的四种方法:lower()方法简洁高效,手动ASCII转换灵活可控,str.translate... 目录一、使用内置方法 lower()(最简单)二、手动遍历 + ASCII 码转换三、使用 str.tr

Spring Boot 常用注解整理(最全收藏版)

《SpringBoot常用注解整理(最全收藏版)》本文系统整理了常用的Spring/SpringBoot注解,按照功能分类进行介绍,每个注解都会涵盖其含义、提供来源、应用场景以及代码示例,帮助开发... 目录Spring & Spring Boot 常用注解整理一、Spring Boot 核心注解二、Spr

Java中的内部类和常用类用法解读

《Java中的内部类和常用类用法解读》:本文主要介绍Java中的内部类和常用类用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录内部类和常用类内部类成员内部类静态内部类局部内部类匿名内部类常用类Object类包装类String类StringBuffer和Stri

MySQL连接池(Pool)常用方法详解

《MySQL连接池(Pool)常用方法详解》本文详细介绍了MySQL连接池的常用方法,包括创建连接池、核心方法连接对象的方法、连接池管理方法以及事务处理,同时,还提供了最佳实践和性能提示,帮助开发者构... 目录mysql 连接池 (Pool) 常用方法详解1. 创建连接池2. 核心方法2.1 pool.q