六月份的文章貌似有点少,我发点之前写的东西充个数。

记 PKUCPC2019

简介

PKUCPC 是北京大学举办的一年一度的 ACM-ICPC 赛制的比赛。由于关系到北大学生的某些加分,因此报名火爆,包括校外队伍,参赛的队伍共有约有 200 多支。

2019 年的比赛设有北京大学内部和北大附中两个赛点,两地同时在 openjudge 上答题,校内外队伍同时冲击同一个排行榜。

赛制

比赛采用 ACM-ICPC 赛制,共有 11 道题,且难度不一定按照递增顺序排序。比赛没有部分分,只有 AC 和未通过两种状态,设有罚时。比赛的排名按照通过题目的数量排序,通过题目数量相等的队伍按照罚时和通过时间和排序。

每当任何一个队伍通过了一道题就会有志愿者把一个对应颜色的气球送给这支队伍。不过由于气球的质量参差不齐,有些气球在送到你手上时就已经比较瘪了,等比赛结束的时候甚至会有气球完全没气。而且这些气球不是氢气球,不像 ACM-ICPC 的气球一样会飞在天上,而是拿棍子撑着的。

题目全部都是英文的,而且对于每支队伍会下发一份拿档案袋密封的纸质题面。今年的题目有 13 页纸。

这次的比赛由谷歌、腾讯等公司赞助。我怀疑下文介绍的特别多的零食还有气球什么的都是这些公司赞助的。

比赛环境

做题的系统只有 windows,并且没有什么可用的 IDE,只能用我们 “最爱用的”dev-c++。

我们队伍所在的机房是北大附中内的一个机房,机器效率挺高,屏幕挺大,打起代码比较舒服。比赛过程中还提供了一大袋零食,大概有 12 块喜之郎果冻,6 块牛奶饼干,3 盒奇怪的饼干或者棒棒,6 块芝士饼干,3 包干果,3 包葡萄干,6 块巧克力,3 包开心果,3 包卫生纸,3 瓶农夫山泉等等等等好多各种各样的零食,非常贴心。

比赛流程

首先,我们一行三人打的到了北大附中,吃完 KFC 外卖,解完大手,就开始配置环境。环境还每来得及配置完比赛就开始了。

我们做的第一题就是第一题。这一题的动态版本我在之前的考试中遇到过,于是很快实现完了,但是 WA 了三次。最终发现是一些细节问题。于是作为前十个队伍通过了这道题。

接着,我们发现榜上很多人通过了 F 题,而且自习一看,这是一道大模拟题,而且涉及很多有关学分等我们完全不了解的概念,于是我们花了很长时间理解英文单词,讨论题目意思,最终由元桢淏执键实现了这道题,由于对题目内的细节没有良好的把握,没有任何常识或者经验支持,我们 WA 了好几次。好在最终通过了这道题。在元桢淏实现这道题的过程中,我和陈冠州一直在思考其它的题,但是除了我对 E 题有了个错误的想法,陈冠州对 C 题有了个错误的想法外,我们一无所获。

然后我们又看到了一道貌似挺好做的题,由于我经常看 electroboom 的视频,因此题目里的那些电学词汇的翻译没有对我们理解题目造成任何障碍,然后发现就是一个简单的 FWT,于是很快 AC。

接下来我们进入了瓶颈期。隔壁的校外队伍已经 A 了 5 道题了,我们的 AC 记录还久久未动。我们把希望寄托在了一道要求很多东西的还算简单的计算几何题上。但是这时候时间实际上只剩 2 个小时了。而且我们发现这道题有非常多的需要特判的特殊情况。

我开始慢慢实现那个恶心的计算几何题。不过也还好,都是自己做过的题拼接出来的,只是不清楚自己做法会不会遇到精度和边界问题。这时,题面刷新了,排除了我们对那些特殊情况的怀疑,于是我们放心大胆地写下去。

通过了样例后,我们直接提交,然后返回一个红字:WA。妈蛋,这可咋调。我们开始改 eps,改边界,然后还是 WA。我们又详细地将输出文件和答案文件进行比对,发现中间少了个句号。然后加上那个句号就。。。AC!于是我们一拍桌子,发现自己一道题也不会了。

接着我去上了个厕所,突然就想到了 E 题的做法。回来又是很快 AC。

然后我们又在最后 15 分钟尝试实现了 I 题的一个想法,最后没能在时限内调出来。

于是,整场比赛我们通过了 5 道题,排名 21。第一名的队伍有 10 道题。

分类: 文章

0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注