故事的开端
Link
然后有一个我们都不认识的人说了一句话
结果实在是太需要 fs 了,等不了疯癫赛,决定肝一篇较长的指导性文章(
目录
本文共分有 555 个部分,分别是:
* 作者简介
* 前置条件
* 什么是验题?
* 怎么验题?
* 其他事项
作者简介
* 与 2024.01.10 注册洛谷账号学习 OI,并在同年的 csp-j 赛事(复赛)中以 280pts 的成绩斩获 1=。
* 在 ACGO 目前 444 场已成功举办的公开赛中担任其中 222 场比赛的验题人。
* 洛谷比赛等级分 123812381238,同时单单洛谷一个 OJ 题目累计通过 678678678 道题。
* 同时担任 COCR 命题组,ZDZL CPMC竞赛 出题组,IRTOI(出题组), MineCode,复仇者联盟(出题组),Roots in Endless Tides 以及 AI Cup (七) 六个团队验题人 (团队顺序不分先后)。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
备注:以上数据统计均截止至 2025.07.05。
前置条件
叠甲:下述观点均为笔者主观认为,不保证适用于所有人
* 不作弊 (说谁我不说,反正不是两个英文字母加个“.”)
* 拥有一定的比赛经验 (我觉得起码得四级吧)
* 懂得大部分算法,注意这里是“懂得”,而不是“会”,意思是你需要明白一个算法可以做什么,效率是多少,而并不需要自己会写。
* 性格好说话,不然没有人会找你的。
注意:验题 ≠\not == 做题,以一道线段树题举例,你可以不会线段树,但你需要明白线段树可以以 O(logn)O(\log n)O(logn) 的效率完成区间修改以及区间查询,这就够了,在验题的时候你只需要明白正解大致的过程,在把每一部分通过网上的资料获取代码,最后再进行拼接即可。
什么是验题?
顾名思义,验题就是检验一道题目的正确性,特别性,明确性和优质性(按笔者主观认为其重要性递增)。
1. 所谓“正确性”就是指一道题目是否存在正解以及题目中的样例或是数据点是否正确等等。
如果一道题在给定的数据范围以及时限内不存在正解,我们称这道题为“不可做题”,而如果一道题的样例或是数据点错误,我们称这道题为“错题”。
一般来说,我们不区分两者,也没有必要。
2. 所谓“特别性”就是指一道题是否存在原题。
其中对于原题的定义,OI-wiki 是这么说:
> 原题大致可分为完全一致、几乎一致和做法一致三种。
>
> * 完全一致:使用一题的 AC 代码可以 AC 另一题。
> * 几乎一致:由一题的 AC 代码改动至另一题的 AC 代码可以由一个不会该题的人完成。
> * 做法一致:核心思路、做法一致,但代码实现上、不那么关键的细节上有差异。
>
> 这三种原题自下而上为包含关系。
>
> 以下情况不应出现:
>
> 1. 在明知有「几乎一致」的原题的情况下出原题。
> 2. 由于未使用搜索引擎查找导致自己不清楚有原题,从而出了「几乎一致」的原题。
> 3. 在「做法一致」的原题广为人知(如:NOIP、NOI 原题)时出原题。
> 4. 在带有选拔性的考试的非送分题中出现「做法一致」的原题。
>
> 以下情况最好不要出现:
>
> 1. 在明知有至少为「做法一致」的原题的情况下出原题。
> 2. 由于未使用搜索引擎查找导致自己不清楚有原题,从而出了「做法一致」的原题。
> 3. 在任何情况下出「几乎一致」的原题。
>
> 可以放宽要求的例外情况:
>
> 1. 校内模拟赛。
> 2. 以专题训练为目的的模拟赛。
> 3. 难度较低的比赛,或是定位为送分题的题目。
3. 所谓“明确性”就是指一道题的题面是否清晰,从而避免在比赛中重复出现多名选手因多不懂题面浪费时间。
一般来说,大部分题面都是非常清晰的,所以不需要特别注意,但也最好不要出现选手因为题面问题而不是思路问题导致其在一道题上浪费很长时间。
4. 所谓“优质性”就是指一道题是否具备供练习价值,明确些就是认定一道题好不好。 之所以将这个放到最后,是因为一道题的“优质性”通常大家都容易分辨,所以此处不多加赘述。
怎么验题?
同样从正确性,特别性,明确性和优质性四个点入手。
正确性
正确性相对而言最为重要,但检验也最为轻松。
首先还是按顺序先讲“不可做题”,这种题的判定作为简单,一般合格的验题人使用瞪眼法是可以瞪出来的,就算看不出来,使用 ds 也是可以的。
对于“错题”其实也不难,只需要自己按照“前置条件”的方法对着这道题做一遍就行了。如果你 AC 了说明这道题的数据有 90%90\%90% 的概率是正确的,但还不能确定,这也就是为什么 ACGO 官方对于一场公开赛的每到题目要求有三份代码,但是如果你没能 AC,就说明你的代码和出题人的代码中至少有一个人是错的,当然也可能都错,这个时候就需要你们细心的检查。
这里给每个出题团的队长提个建议,在你们请验题人验题的时候务必把他们查看他们提交记录的权限打开,不要害怕他们直接查看出题人代码,让他们查看正解将会有助于验题甚至找出所谓的 std 的错误所在。
特别性
对于查重,这里先为大家提供两个工具。
* 原题机
* CPRet
查一道题是否存在原题我们只需要利用好上述两个工具,并给予其一定关键词查看是否存在原题即可,没有技术含量,一般由出题人顺便完成。
注意:请搜索一定关键词而不是整个题目内容。
明确性
这点和“正确性”通常可以放到一起,如果验题人可以不经过出题人的提示独自 AC 这道题,就可以保证题目是明确的。
而且一般的题目大多不会出现此类问题,上文也提到过。
优质性
这点和之前几点最大的不同在于根本就不存在一个指标可以评定。
对于这类问题,我个人认为妥当的方法是:在验题人完成“正确性”的检验后主观给每道题打个分数,最后由队长结合每个验题人给出的分数以及其个人水平选出合适题作为竞赛题,而落选的题可以作为备用题或是团队内部竞赛题。
其他事项
关于处罚
ACGO 官方目前还没有明确说明对于比赛出现原题 or 错题对出题人/验题人是否存在处罚,但洛谷官方已明确说明针对比赛出现题目失误将会酌情扣除工资,禁出题甚至封号(建议官方贴个处罚细则出来)。
这里要说明一下,对于一道错误的题,要受处罚的人包括该比赛负责人,该题出题人和验题人,所以你如果决定验一道题拿工资就一定要负责 (不然可能还会亏本)。
关于工资
此处由队长观看即可。
还是得酌情给予,个人认为如果过得去给出题工资的 13\frac{1}{3}31 到 23\frac{2}{3}32 之间即可。
当然如果只是抄袭出题人代码敷衍的,工资取 000 也不是不行(
关于出题(((宣传
Link
鸣谢
本文章部分借鉴于 OI-wiki 以及 洛谷帮助中心,还有感谢文章开头的不明人士的指导(大雾