研究生编程大赛&校赛&武科游记&后记&支离破碎的发言

图文无关

研究生编程大赛

两个月前,我的在新生赛上使用DOMJudge作为评测系统的想法被否决了,双方各退一步,于是我被允许在这次的校赛中使用DOMJudge。

在校赛的前几天,小C偷偷的找到了我,希望把研究生编程大赛的评测机先斩后奏的换成DOMJudge以进行压力测试,熟悉一下操作规程与维护方式。

那天是星期三,我晚上开始进行题目添加,账号导入和压力测试。由于上次的账号生成器被我一气之下删了,只好重新写一个。

压力测试是个问题,找了一会竟然找到了DOMJudge的API(这玩意还有提交API真是震惊),于是随手写了段Python,然后……judgehost就全崩了?!我TM?这还能用?区域赛的时候各主办方怎么用的?一直到了第二天的一点多钟,这个问题才被不太漂亮的解决了。judgehost会在崩溃后自己重启,但是需要在管理界面上重新手动启用。

督促着小c测了下标程,于是我终于可以睡觉了。

周四中午到了机房发现一片忙碌,按小c的提议临时把本校OJ重定向到了新评测系统。然后和可爱的红小豆一起去擦那块万年未清理的白板并在上面写通知,显然原来那个白板笔其实是记号笔,根本擦不掉。用了一大瓶酒精才能擦个七七八八。

由于他们的工作失误,题目提前一个小时就发下去了,小c非常绝望,对我不断宣传“等等开始了一定会一分钟一百多个提交,评测机挂了可怎么办啊!”,搞得我也非常紧张,因为到现在我们仍然没向教练报备换平台的事情,如果出了问题,我俩都会死掉(就只能all in ctf了)。我就一直在后台刷新submission页面,过了半分钟还一个都没看见,让我以为是服务器整个爆炸了,连交也交不上去。第一分钟只有两个提交,还好都AC了,证明平台暂时正常工作了。没过五分钟,更大的问题发生了,所有的Java提交都无法评测,而研究生们用Java的比例非常高,可以说是个重大事故。好在最后发现是内存限制开小了,jvm跑不起来。改大内存限制就能正常评测了。

或许是我们过于紧张了,想象中的疯狂提交并没有出现,实际上,没有一台评测机受到了有意义的压力测试,考虑到每分钟只有几个提交甚至几分钟一个提交,预定的计划并没有有效的完成,只是让小c和工头熟悉了一下后台的基本操作,就是这样也把我们气的够呛。显然很多人分不开submitrequest clarification,以至于要向clarification里提交代码。还有诸多我都不知道是怎么犯得出来的错误,实在是令我大开眼界。

最后整场比赛有惊无险的结束了,我和小c都没有被教练制裁,令人高兴。

校赛

做完研究生编程大赛的运维和裁判,还没来得及休息,更大的问题就摆在了面前:我们的DOMJudge没有打印功能……去华师的群里学习经验,换来的是RTFM的回复,由于我使用docker进行搭建而且物理机甚至在另一个校区的中心机房,摆在我们面前的只有一条路:自主开发。于是我就首当其冲地被分配了这个任务(我认为没有用错词,确信)。

好在任务不是很复杂,两个小时左右就做完了,简单地教了一下学生会如何使用,我认为UI应该很友好的。

晚上进行服务器重建与第二次压力测试,搞到12点然后撤了,再三交代小c一定要验一遍std,接着昏昏沉沉地睡去。

第二天一早起来到机房准备,打印了一堆板子,感谢学生会搬来的打印机。

下楼签到,发现学校搞得很隆重,十分有排面。

收到了班上同学的祝福,非常感激。

上次的女装大佬这次没有女装,大为失望。

接着是开幕式,领导讲话,赞助商讲话,无甚意义,按下不表。

比赛开始了

配置环境,发现是32位,不能用CLion了,实在可惜,退而求其次,用起让人回忆高中的CodeBlocks。

翻阅题目,顺利找到签到,填入大框架内,开幕雷击,全场首A。

做一道水题,考虑了各种情况,于是WA了。

全场被提示输入问题,改了改AC了。

接着是一个二分,拿C++写,爆long long而死,换Python写,因为写反nm而死,改完了再交一发,没删调试,再交一发,终于AC。

然后是一个贪心,被题面卡了,全场读错题意,出题人解释题意时把clarification的目标选错了,只有一个队看到。解释清楚题意后,发现格外的水,随便一写就A了。

但是由于前面浪费了过多的时间,并没有时间写别的内容,还是拉倒罢。

四题结束,只获得100块钱,并没有达成学校的任务,不过考虑到他们做的事情,所以也并不怎么样。

武科校赛

一大早起来听见很大的雨声,于是带上伞,出门发现雨停了……

接上可爱的红小豆然后走上北街去坐车。很有意思的事情是北街在北区的南边但是叫做北街。

早上坐车的人很少,但是摇摇晃晃的还是让人有些晕。渐渐的人多了起来,结果是我们坐在一些老年人之中,好在随着时间的流逝,平均年龄开始降低。第二次转车开到最后,车上只有四个人了,四舍五入就是包了车。

最后在开门之前到了机房,不过并没有等上多久,在我还在解放生产力的时候就开门了。

我们队被分在中间,三个人分了四个位置,舒服。随后的事实证明我们其实只需要两个凳子。

开场配好环境,等着发题目,感觉题目发晚了,并没能抢到签到的首A,慢了30s,看来是我平时续的太少了,还要多续一点。

然后push队友,获得一道水题,感觉很可做,于是字符串哈希搞搞,获得首A,此时我队是全场唯一2题,非常有排面。

过了会发现我校三队分别拿了三题的首A,全部挤在榜首,感到欣慰。

上完厕所回来写一道疑似凸包的题目,结果WA了,感觉哪里不对,也没敢再交,而是换了个题去做。

在可爱的红小豆帮我敲板子时,我跑去跟佬蒋找题做,发现有个题好像很水,分类讨论一下就没了。WA掉疑似凸包后我开始敲那个题,容易的过了样例与简单的手工数据,一交上去又白给了。

继续换题,佬蒋问我有没有点到线段的垂直平分线的板子,我说没有,想了想发现我能现场做一个,于是就做了一个。过了样例,不出所料的WA了。现在我们手上屯了三个题目,无法AC。

突发奇想想测测我写的新板子有没有问题,结果发现果然有,输出小了一半,因为多除了个2,想来我在C++课上也犯了同样的错误,我真是太智障了。改好后AC。

分类讨论的题目有两个错误,一个是分类标准实现错误,一个是逻辑错误,人分身了。在最后我无力的枚举测试的时候才发现。一气之下开了12个数组,终于AC了。

剩余时间一直在做E,一个概率dp,不知为什么我们一直在考虑路径数而不是点的概率,直到最后也没能AC。

佬蒋想出了B的坑点,但是大家都不会做。

最后打到了二等奖,学长一等奖,还有几队分别拿了三等奖和优秀奖,每种奖里都有我校的人。虽然前提是武大华科没来,但是也是挺开心的。

实现了我开考前做出的承诺:给后来加入的红小豆打个手环。

后记

这个主场对我们不利,于是去外校找回场面。

一换队名就会被打爆,看来以后不能换队名。

给可爱的红小豆打到手环:成功。

可爱的红小豆带我吃吃喝喝,开心。

支离破碎的发言

我想今天对我并不友好,

各种意义上都是这样。

人是不能自我欺骗的,

我无法对事实视而不见。

它会从屏障的缝隙中溢出,

无时无刻不在证明它的存在。

 

以对自己的标准要求别人,

反而显得自己狭隘。

 

人作为多种社会角色所存在,

对于特定的另一个人来说,

其中的一个角色比其他的更重要。

 

当风险的期望变得足够大时,

稍有常识的人都会变成风险厌恶的。

 

对大概率会让自己不高兴的事情,

就不要去求证了。

 

那些刻意试着忽略的事情,

实际上仍然无法真正忽略。

 

猜测准确在打ACM/CTF时是一件好事,

其他情况下则不一定。

 

计算机上用惯了管理员账号,

突然被ACL拦了还挺失落的。

 

身体成年但心智非常幼稚的人,

我觉得会带来高于平均的危险。