CSP2021 游记

· · 个人记录

初赛

这次去其实是冲着提高组去的,去年什么都不会的时候甚至都乱搞压线过了提高组,导致今年充满了决心。考前大概在一周内乱翻了几下《初赛一本通》,看了几眼大佬的总结,感觉差不多了。会的还是会,不会的还是不会。

2021.09.19 上午 - 提高组初赛

来到考点校门外时一脸无敌,大体比较轻松。保安大叔说不需要排队,但我们几个同学还是走到栅栏面前,站成一队颓废,其他同学看到我们在排队纷纷站到了我们后面,就这样绕了环形广场大半个圈,让保安大叔不禁叹气摇头。

不大清楚座位号是按什么排的,可能是因为姓氏较少排到最后一个考场。老师一直在晃悠,09:25 终于发下卷子。然而去年怎么考的都忘光了,看到《答题卡填涂注意事项》还一脸蒙圈,怎么也找不到所谓答题卡在哪里。

开幕雷击,第 1 题完全不会,对 Linux 一无所知,选了一看就是完全不对的 -all

5 题一看就知道不对劲,然而还是选择了 4n-2,赛后恍然大悟可以两个一组,每组比较,然后大的一起比,小的一起比,正确答案应是 3n-2

不会球的体积交,2.5 分的第 21 题白给。

27 题给的程序读入完全没有意识到最前的 10n,猥琐的选项竟然也有把 10 算进去的,真是害人不浅。

Base64 乃完全大不会,随便乱搞了。
the Method of Four Russians 感觉做得还可以的样子。

出考场时大概认为没救了,只能 50 分左右。果不其然没进复赛,查分后又少了 7 分,彻底退出了论坛。

2021.09.19 下午 - 普及组初赛

不同与其他靓丽宽阔的教室,我所在的考场似乎是废弃的,没有钟,空调好像坏了,风扇还非常吵,有个大叔考前 3 分钟进来挂了个钟,乱修了下空调便扬长而去。

普及还是很容易的,其 Base64 和上午比起来好做一倍。

复赛

2021.10.23 上午 - 普及组复赛

我们这儿就三人没得考普及,有一个大佬认为普及伤身费脑,有碍提高发挥便没来一起考。

看了下座位号,发现是全考点最后一号,不大清楚怎么回事。在电子阅览室考试,环境优美,电脑显示屏大看得非常舒适,然而 win10 没有激活,没有内置计算器。

提前了一个小时进考场,坐在电脑面前读了《考场注意事项》共 18 遍,去洗了把脸准备考试。

监考老师给的解压密码中的 \ 我写成了 /,错了 4 遍,改过来后又因末尾少了个 # 错了 3 遍,08:45 分终于解压完毕。

大概创建好文件后,打开 T1,大概浏览题面后认为是 ans = r - l >= n - 1 ? n - 1 : r % n,胡思乱想 5 分钟后恍然大悟可能跨越 n-1,乱搞之后结束战斗。

T2 看了一眼不会 这代码不是冒泡吗?,大肆放弃。开 T3,发现非常复杂,用 a 数组记数值,f_1f_2 分别记录 .: 的个数,写了半会儿大概判了几点:

  1. 前导 0、没有数值等一系列奇怪问题;

然而发现可能会有猥琐的数据 .: 顺序混乱,于是改为在每读到一个标点符号判一次当前个数。然而这份代码没过样例 4,这才明白数值可以爆 \mathtt{int},于是改为在每读到一个数字判一次当前数值。过了样例 4 后感觉差不多的样子。

这时突然感觉非常冷,乍一看发现大概 21^\circ \text{C} 的天开了 19^\circ \text{C} 的空调,便愤然暴起,找到老师帮忙调到 23^\circ \text{C} 才欣然回位。

T4 发现长得像链表,但过于懒惰 也有可能是忘了是链表 导致最后使用 \mathtt{vector} 乱写,但由于外星人袭击等因素代码一直玄学输出,最后才发现是奇怪数组负数下标的不可抗力因素。打完后感觉非常能过,大肆以为 vector.eraseset.erase 一样是均摊 O(1) 的,其实不然,前者是 O(n) 的。

还剩下一些时间,豁然开朗回去做 T2,然而电脑的 cpp 文件不知出了什么岔子,无法双击点开,也不能拖拽进 Dev-C++,只能通过 Dev-C++ 左上角的“文件”打开,十分烦躁。折腾半天后,终于开始做 T2,乱打了一个 50 分的暴力。

还有大概 15 分钟,便想用 \mathtt{vector} 乱搞看看能否更高一点儿分。但在一会儿思考后震惊地发现 \mathtt{vector} 没有 \mathtt{lower\_bound} 成员,一时脑瘫认为 \mathtt{vector} 不支持其操作而转用 \mathtt{set} 乱写,却因为神奇迭代器原因一直玄学输出,搞得前面 50 分也丢了。只剩 5 分钟,流了一身的汗,最后修好迭代器匆忙过了个极限样例就把 Dev-C++ 关闭了。

最后 3 分钟本来还想检查一下 \mathtt{freopen} 写好了没,但 Dev-C++ 再也点不开了。乱删了一下调试数据便结束考试了。

以普遍理性而论,AK 是不行的,所以大概 300 罢。

赛后

2021.10.23 中午至晚上

初考场后被奆学指出 vector.eraseO(n) 的,有亿点慌。

大家考完普及聚餐吃饭,各路大佬纷纷宣布自己的战绩。

有大佬认为普及今年挺简单,纷纷表示可以 AK,确实比往年要简单好多,一个神犇说是因为年际变化大。

有大佬谈到 T3 有点恶心,分享自己所判了的情况,几个大佬这才发现忘判顺序和爆 \mathtt{int} 而大没救。

有大佬说普及就是逊,乱考即可,下午提高才是重点。在谈到下午有没有信心蓝勾时,大家纷纷表示不可能,但心里其实都早已定下誓言必得蓝勾。

吃完饭后,没过提高的人大喊了勾爷加油便匆匆离场,下午再听大佬们的好消息。

回家打了一盘 Florr,经历使我深有感触:

有一朵花,它曾一次又一次来到这片废土地图上的那灰暗的禁地,找到一个又一个蚁窝,与无数蚂蚁殊死搏斗,只为了能在那万分之六的几率下,亲自斩杀蚁后,获得那传说中至高无上的神器「尖刺」。花已经为「尖刺」奋斗了千万年,也已经听闻过千万遍那神器的传奇:它的锋利的一刃,足以切割世间万物。

有一次,像往常一样,花在禁地拼搏后空手而归,就当它要踏出禁地时,它看到了,绯红的颗粒,象征着传奇的绯红的颗粒!在颗粒环绕飞舞的中心,正是它的梦想、它的愿望、它奋斗一生的目标——「尖刺」。它颤抖地捡起「尖刺」,不敢相信自己的眼睛,心中有着说不出的激动,它等不急将「尖刺」向四处挥舞……它已经无暇顾及「尖刺」为何会平白无故出现在这灰岩之上了。

然而就在这时,花注意到在「逐梦榜」——这片废土上最强的花的排行榜上的第四位突然消失了。花自然是想收拾下第四位的遗产的,便往禁地深处,第四位丧生的地方进发。然而,当花到达禁地边境时,它看到了十几只黄蜂下已成为灰烬的第四位。这些黄蜂看到了有一朵送上门的花,便迅速开始追捕,黄蜂的飞弹如雨点般密集,花知道它现在逃或许还来得及,但看到身边的「尖刺」,它毅然决定冲向蜂群……

……

在禁地的边缘,环绕在绯红颗粒的「尖刺」,像它原来一样落在了这块灰岩之上。

九只黄蜂在神器的周围徘徊,似乎在说些什么,却又被迫去追寻另一朵花了。

神器的传奇仍流传花间,它也一直在这废土的禁地上,直到有一朵花……

晚上洛谷出了民间数据,顺利 AK 了,但感觉还是不妥,静待花开吧。

2021.10.30 晚上

出成绩了,100+100+65+80=345,AK 终化作童话,彻底肥掉了。

立马对官方数据进行搜找,却杳无音讯 去年官方数据可是比《申诉通知》还早发布两个半小时啊,便一气之下拿出自己代码研究。

怀着极其悲愤的心情去看 T3,仔细研究后震惊地发现没有判 a 有无前导 0,瞬间崩溃。如今后悔莫及唯独没有检查 T3 的代码。

T4 早已被指出复杂度错误,但在洛谷等地的一番测评后感觉又能混过去便放下心来,如今我猜也是光荣 TLE 了。

这次难度的确比较低,但教训还是很深刻的。没有 AK 十分可惜,但也是第一次拿一等奖,充作个纪念吧。