详情概览
算法竞赛介绍
算法程序设计竞赛需要选手在规定比赛时间内做出若干道算法题。选手提交的代码会在后台自动进行评测并根据赛制给选手相应反馈。
一道题目会有若干个测试点,对于每一个测试点,程序需要在规定时间、规定空间内,运行出正确答案。具体的时间、空间限制会在题目中注明。每一次的提交都需要测试所有测试点,并非某一次提交通过某一个测试点,以后的提交就不用再运行该测试点。
对于每一题的得分,大部分比赛根据通过的测试点数目折算,比如该题一共20个测试点,满分一百分,选手通过1个测试点可拿五分(部分比赛可能会出现测试点加权等情况)。
最终排名时,所有题目分数总和(有些会加权)高的同学排名考前,分数相同时,总用时更短的同学排名靠前。
不同步比赛对选手的参赛编程语言有不同的要求,绝大部分比赛都开放
C/C++
,部分比赛会对Python,Java,Pascal等语言做出相应限制。
赛制
-
OI赛制
比赛期间每一次提交代码没有结果反馈。最终成绩以最后一次提交为准。
-
IOI赛制
比赛期间每一次提交代码实时反馈本次分数。最终成绩以最高一次提交为准。
-
乐多赛制
比赛期间每一次提交答案实时本次分数,但是如果提交代码不是满分,则该题分数上限变为当前分数上限的95%。减少至初始满分的70%时不再减少。具体计算公式为:得分 × \(0.95^{\text{WA次数}-1}\)
最终成绩以最高一次提交为准。 -
ACM赛制
比赛期间每一次提交代码只有对和错两种状态(必须通过所有测试点才算对)且每一次错误都会加20min罚时。
-
CF赛制
比赛期间可以测试部分测试点,赛后测试全部测试点。比赛过程中可以提交自己写的测试点(hack)使得其他人程序出错。
赛时常见测试点反馈
-
AC
选手提交的代码通过该测试点
-
WA
选手提交的代码运行结果有错
-
TLE
选手提交的代码运行时间超过限制,需要优化算法
-
MLE
选手提交的代码运行空间超过限制,需要优化算法
-
RE
选手提交的代码出现了非法访问、爆栈等问题(出现这种情况的原因很多这里不一一列举)
-
UKE
出现了未知错误