CSP2022 游记

· · 个人记录

CSP2021游记

DAY - ??

考前模拟赛几乎是场场挂分(还有几场是根本打不动)。

还吃了一顿 全 寄 套 餐 (某顿午餐吃了鸡翅、鸡蛋、鸡腿)。

DAY 0(考前一天)

说是复习但我跑到 Euclidea 上画图画了不知道多久。

教练让我们把考试易错点写在一个共用文档上,结果:

文档瞬间变成了冬日绘板。

我(crazy_sea)和 Alpha1022 在上面互相攻击(在易错知识点上面写 alpha1022 / crazy_sea 三分钟 AK CSP)

结果教练很严肃的谴责了这种行为,不过他貌似不知道是我干的。

DAY 1

跑到候考室候考,那里也是一个电脑室,众所周知这个时候腐败老师不可能狠狠的 D 你一顿,所以……

我平时是 “语不惊人死不休” 的,所以我在易错点文档上面写了许多有趣的东西。

结果教练在全机房面前当众念我写的内容,然后再点名批评我扽内容太 “难懂”(其实是内容敏感),直接社死。

进考场的时候忘记把食品带进去了,不过问题貌似不是很大。

键盘手感不是很好,但问题不大。

开题先快速扫了一遍四道题。

T1 是一个简单的图论题,T2 是一道数据结构,一看就是分正负和 0 讨论,并取相关最值,T3 题面太长没仔细看,T4 一看就是一道树上倍增。

然后我先肝了 T2,一种写法是只保留正负数的最值和 0,然后再暴力,这样复杂度是 O(n(\log n+25)),这样的优点是不需要大讨论。

然后很快就写完了,结果没开 long long 没过大样例,不过问题不是很大,错误很快就被发现。

然后去写 T1,想了一想,四元环可以拼接而成,也就是两个 1\to a\to b 的链进行组合。

而对于一个固定的 b,需要保留的 a 最多只有 3 个(最大,第二大,第三大),原因也一目了然。

然后稍微处理一下最短路什么的也就没了,刚开始看到 k 这么小我还以为复杂度和 k 有关。

然后去看 T3,花费了我 +\infty 分钟才看懂题目,然后想了一想,貌似有点困难。

先看 T4,我感觉 T4 没啥难的,但我还是决定先想 T3。

不难发现合法的充要条件是每个点的出度为 1,我们可以考虑用随机化算法了判断是否合法。我用了自然溢出。

T3 代码超级好写,整个只有 800 byte 左右,很轻松的过了大样例。

此时还剩下约 2.5H,全力肝 T4,我先花了约半小时写代码,然后是惨痛的调试时间。

易错点1:选择的点不一定都是简单路径上的点。

易错点2:LCA 处可以选择 LCA 的父亲节点。

几乎把我调破防了。

当时已经做好 T4 暴力分的准备了,不过最后还是调出来了。

然后还剩下半小时,我又去把四道题都检查了一遍,好像都没有问题。

然后我 T1 脑瘫了,我计算了一下,理论运行次数应该是 9\times n^2,然后我快速计算了 n^2,我算成了 2.5\times 10^7,再乘以个 9 不就有点危了吗?

然后我赶紧去写对拍什么的,造了一个卡满的数据,然后发现本地才 300ms?

然后人直接傻到原地,直到考场出来交流之后才发现自己计算能力竟然还是小学水平。

不过问题不大。

快结束的时候给 2,3,4 题都加了一个快读,然后又测了一遍大样例。

反正没有问题就没有问题吧,我最后还在 T4 的代码中加了一行注释:CSP-S 2022 RP++

估分:100+100+100+100=400-\epsilon,希望不要挂分。

实际得分:100+100+100+100=400,一分没挂。

另外,NOIP 2022 RP++。