一场comet常规赛的台前幕后
有出题的想法大概是#8比完之后,#8的比赛较易,应该是符合https://info.cometoj.com 上的常规赛难度说明。
我们几个觉得我们一定可以出质量更高的题。
那个时候在玩线段树的时碰巧想出了现在的E,并且InFleaKing以前也出过一些题,拼起来,再出个ABC,就可以出一套比赛了。
然后又拉来jokerwyt,三人组成了最开始的出题团队。
jokerwyt联系了负责出题事宜的工作人员,发现待遇还不错,于是我们开始想idea。
某个下午我在草稿纸上画了个圈圈,然后想着第1次跳1步,第2次跳2步,第i次跳i步,什么时候回到原点呢?大概想了几分钟,恍然意识到这就是个exgcd能做的东西,拿给InFleaKing看,他觉得也不错,似裸题又要点思维,这样的题比较符合我们的出题初衷,由于比较容易,就决定放C。
当时D是一个InFleaKing的一个容斥,F是一个拆式子数据结构维护。
A是jokerwyt的拆位,B是简单不等式。
很遗憾,到最后,除了我的C、E,
A、B、D、F全部被dreamoon毙了。
原因有什么A不能让新手做位运算,B太经典,整套题过于数学,F过于套路等……
某个晚上,我想起InFleaKing写过一个背单词的程序,背单词如果要效果好,肯定要相邻间隔尽可能平均,然后我就发现我不会做。
但是单词出现3次以内就是一个简单构造的\(O(1)\)题,证明也挺显然,我觉得放A题不错,但是最后不想管了就丢给jokerwyt去出了,没想到他放了B。
但是想想A连位运算都不给出,放B似乎也是正确的。
D题InFleaKing换了一个看上去是表达式解析的欺诈题,据说他自己也被欺诈了。
拿给我想的时候,大概想了5分钟吧,就想到离散一下就变成简单的表达式题了。
有一定的码量,但是很好写,所以就放D了。
F是在最后阶段被毙的,时间有点赶,于是ilnil也加入了出题组,贡献了一道数据结构题。
A题实在想不出什么妙妙题,就契合主题了。
没想到要在CF的polygon上加题来验题,研究了好久才知道怎么用。
验题阶段我们有互相验,dreamoon在我们验完之后又验了好几遍,加了一些数据,写了写std和错误程序,提出了很多修改建议,非常感谢他尽职尽责地检查。
比赛前非常地紧张,害怕题意出锅,数据出锅,题被A穿或没人过被喷毒瘤等。
A题很快就有人过,同时有很多人没过,jokerwyt看了他们的code,基本都是没判<5。
B题我们预期将会坑到很多人,没判只有1、2和只有1的情况,然而前面的大佬还是稳,可能选手们有些紧张,没有那么快想到,在15分钟后才出现大批AC。
C题我看着几页的WA和TLE,全部是暴力,代码里就是没有exgcd的字样,对比上一场比赛,20多分钟了交了那么多份代码却没有人AC,群里有一位同学喷我毒瘤了,心态崩了,之后加了大样例明示选手不要交暴力了。
接近30分钟,我终于看到了zsy代码里的exgcd,但是被暴力枚举每个约数卡了,我知道他很快就会AC的,没想到他改了个pollard-pho……
C题到一个小时才有10个AC,特别是很多大佬没有AC,这大大出乎我的意料,群里爆发了大面积不爽,什么不给签到选手活路之类的,对此,我很无奈,因为这题只是稍微拐了个弯而已,我相信签到选手肯定也是学过exgcd的,只是想不到……
一个小时那时的排行榜就让我们出题组判定D题肯定不会有预期那么多人AC了,因为都卡在了C,就算花了九牛二虎之力越过了C,再看到D一个表达式题,肯定就继续喷出题人毒瘤了,接着弃疗,根本不会想到这题也是个简单题,至于E、F有人过就不错了。
最后结果与我们中途的预期类似。
E题有一个人写了正解,可惜少讨论了一些东西,在比赛过后四分钟才过,F题有一堆大佬肝,可惜走了歪路,也是比赛结束后几分钟才有人过。
对C题难度的错误估计确实比较难受,影响了整场比赛,我没想到大家对数论的理解这么差,也没想到当时随手的一个优化会卡T这么多人。
或许把B-E往右平移一位会比较有体验。
dreamoon说他心目的难度和OJ上的那个不一样,不知道选手们能不能理解这点,我们也希望出一套有思维难度的妙妙题,而不是像A题那样摆在面前送人,不然选手们做了也没有什么用,希望这套题能给你们带来一些收获吧。