写给之后的出题团队

· · 个人记录

本场比赛出问题的地方有:

  1. Div.2A 样例解释有误,现已修复。
  2. Div.2B 题面描述存在歧义,现已修复。
  3. Div.1D sub2 数据不满足 k\le 10,现已修复。

我能够理解各位选手对于本场比赛的愤怒,从自身经历出发,如果我打了一场洛谷月赛题面反复出问题,我也会觉得这场比赛就是垃圾。我接受管理组的所有处罚,并且因为题目问题对所有选手致以歉意。

我和团队的所有成员都是第一次向大型公开赛事投题,所有人都是抱着出好题目的憧憬来办这场比赛的。在所有的问题都已经暴露出来后,我希望能够以一篇文章的方式,反思团队在投题过程中暴露的种种问题和现象,并希望以后向我们一样,第一次出题的新团队能够以此为诫,不会再出现这样的事故。

重视细节

在比赛开始之前,我们几乎将所有的目光都集中在了后面三题上,而忽略了前面题目在样例解释,题意描述中的问题。可能因为“简单题不太可能出锅”的麻痹大意,当审核员做完所有的题目之后,我们就以为这场比赛天衣无缝了。

而问题就出在细节之中,我们没有人检验过 Div.2A 的样例解释,因为这道题目输出任意一个点都可以通过,哪怕选手只写了 n=1 的部分分都能够通过本题。但是我们忽略了最基本的一点,选手在做题之前是需要读懂题意的,而样例解释就是最好的题意解释。

所以对于日后的出题团队,请务必检查好比赛中每一道题的每一个细节,哪怕题目简单也值得全面细致的检查。这是对一场比赛的负责,也是对参赛选手的负责。

反复检查

Div.2B 的问题是我们始料未及的,因为我们内部在读题的时候都没有发现歧义。如果我们在比赛开始之前,拉一些非比赛工作人员,像 CF tester 那样打一下这次比赛,也许这个问题就会在赛前被解决了。

同时,D1T4 sub2确实没有保证 k\le 10 是一个曲折的故事:

我之前造了一次正确的数据,后来又觉得数据不够强,于是重新调了一下参数,并且让 AI 优化了一下实现。

不清楚 id=2 的sub中k=10的限制是怎样在他与AI的交流中丢失的,最后造出的版本就是没有保证这一限制。

在重造完数据之后,我交了各种特殊性质和正解的代码(因为有数据加强之处正是特殊性质和最后的正解),唯独没有暴力的代码,所以这个包就在我不知情的情况下出错了。

这是没有反复检查的结果,如果有人能在比赛开始之前交一份暴力,那么就会立马发现这一问题。

所以对于日后的出题团队,每一次修改后都请务必反复检查。如果能找到 tester 的话,最好还是让 tester 打上四个小时看看评价,尽可能将问题在赛前暴露。

积极处理

对于日后的出题团队,如果在做好一切准备工作之后,不幸还是出现了问题,那么应该积极处理而不是消极应对。

首先迎面而来的必然是选手的怒火,任何一个出题人看到这样的回复都不好受,但是此时装死不回绝不是好的对策。当对于选手做题的影响不可避免之时,在考虑自己受到的处罚之前,应该以最快的速度解决问题。题意不清,那便及时调整;数据出错,那便迅速重造。不要因为出题规范上的“重大失误”而投鼠忌器,选手的做题体验一定是第一位的。

以上都是我对于本场比赛的反思,希望日后出题团队引以为戒。

尾声

从学长的口中,我以为出比赛只要有 idea 那么就是简单的。但是这场比赛给我敲响警钟,一场比赛是好的取决于方方面面,尤其是角落里的细节。

同时,也希望各位选手能够包容出题人那些无心失误,在 LA 或者答疑帖表达怒火时收敛一点。铺天盖地的垃圾话说网暴太重,但是这些言论还是很伤人的。

在一位我不知道名字的出题人写的 出题记 中,他写道:

我必须承认当时的我不是一个勇敢坚定的人。那几天之后我认真思考过我究竟应该继续在官方比赛里面出题。或许是突如其来的消息让我本能性的回避,或许是害怕承担责任,抑或是害怕更多的选手,甚至是我认识的选手因我的失误而折戟。只是“你这次的数据已经无法改动的,唯一能做的就是再出一道好题来补偿这次的失误”这句话点醒了我。可以说这句话是支撑我完成今后出题工作的全部,我希望我之后的工作确实对得起这句话。

对于我来说,我需要思考当前的水平是否足够我出一场好的公开赛。但是日后不幸出锅的出题团队中一定有水平极高的选手,我希望出锅不是你们对出题热爱的障碍,而是“你这次的数据已经无法改动的,唯一能做的就是再出一道好题来补偿这次的失误”的动力。

下笔千言,不知所云。