2021 CSP-S 崩盘记
2021.10.23 SD 日照
11:00 之前到达日照。在海边玩了会,然后去吃饭了。
12:50 来到考点校门口,面到了 🍑 和 🐟,聊了聊 Phigros 等。
13:20 教练来了,大多数同学都到了,查考务、在校门口照相等等,之后互 % 了一番就进校了。
13:50 进入考点,到了考场门口也不让进去,观察到系统是 Win10,一直在走廊等到差不多 14:00 才让进场。
进考场之后试机,发现电脑配置还算可以,但是键盘过于毒瘤,\
键在回车键左边。随后发现 g++ 没有配置环境变量,于是光速配上了。
我便打头文件快读快写,我打快读的时候坐在我右边的选手直接惊叹,我左边的选手向监考员询问如何建子文件夹,后来他把子文件夹的名称写了个 airport.out
,我直接震惊竟然真有这种啥也不会的选手。
打完缺省源和对拍代码之后,我发现我左边的这个人不会写文件操作,他知道我会写,就试图想看我的屏幕,我当时直接识破了,就故意把编辑器的字体调的特别小和蚂蚁一样,然后左边这个哥们直接崩溃了。后来,他应该是看了他左边那个人的屏幕才艰难地写出来了 freopen(airport.in, r, stdin);
给我笑拉了。
大约 14:15 我一切就绪,就等解压密码,等的过程再看看我两边人的神操作。
14:20,解压密码发了。解压之后,神奇的监考员此时宣布禁止触碰鼠标和键盘,14:30 之前连题也看不到,可是有部分选手提前先把题打开了,监考员也不管。
14:30,考试开始。我打开题面就开始乎乎地看题,策略是把每个题先看懂,清楚样例是怎么来的,然后再去看下一个题。这样读完四个题,差不多到 14:50 了。
根据往年的经验,T4 的暴力分比较好打,而且一般选手因为做前面的题太投入导致最后没有时间打 T4 的暴力,我就先开了 T4。我思考了一会,有了一个 \(n^3 \cdot 2^{nm}\) 的暴搜,但是前 10pts 数据范围 \(n\times m \leq 25\),极限复杂度 \(125 \times 2^{25}\),完全过不了。仔细思考过后,发现我这个题无法得分,就赶紧弃了。
此时考试过去了半个多小时,我几乎是毫无进展。在之前读题的时候,我留意到 T3 的 28pts 特别好打,就是一个裸的 \(2^{2n}\) 暴搜,我便用不到 10 分钟打了 T3 的 28pts。当时我满脑子都是暴搜,想了一会这个题的高分解法,但是完全走不到正路上,也没有仔细分析题目性质,可能由于分奴心理,光想着打满暴力,就赶紧跑去看前面的题了。
大约 15:30,因为有了 T3 的 28pts,我比较有信心地打开 T1,读题的时候我就想到一个非常暴力的 \(n(m_1+m_2)\) 的做法。大概是枚举限制廊桥的个数 \(k \in [1, n]\),对于每个 \(k\) 跑一次类似单调队列的东西,求出当前限制廊桥为 \(k\) 时的答案,最后取这 \(n\) 个答案的最大值。严格 \(n(m_1+m_2)\)。想到后面我如果写出正解的话,需要一个暴力对拍。我就花了近 20 分钟把这 40pts 打了。
到 16:00,比赛过去了 1.5h。我目前打完了 T1 和 T3 的暴力,准备去打 T2 的暴力。可惜,这前 1.5h 竟是我有效得分的时间。后面的路程很坎坷,时间感觉过的也很快。此时我右边的那个哥们睡的正香呢,左边的那位刚进考场的时候还问监考员怎么建子文件夹来,我觉得旁边的人没啥水平,也不会干扰我,便充满没有用的信心(
因为满脑子都是暴力,我当时想着赶紧把暴力分拿满,完全没有往正解上想,于是就去攻克 T2 的暴力。我想了几分钟,发现瓶颈在 Check 一个字符串是否合法,然后就扔了半个多小时去玩样例,想怎么 Check,但是太 ** 难弄了,直接给我整崩溃了。我决定放弃 T2。
这时我发现今年的弱智暴力分特别少,应当有一部分人会卡在 40+0+28+0 上,一个题的正解应该能吊打四个题的低分暴力,这和 2020 CSP-S 不一样。
此时 16:40 左右,意识到这个问题之后,我便全力攻克 T1 的正解,但是废了。后来得知正解是假设有无限个廊桥,记录每个飞机处在廊桥的位置,然后遍历一遍所有飞机,优化在记录每个飞机处在廊桥的位置上。可是我当时的暴力是枚举总的廊桥个数,想把 \(O(n)\) 的单调队列优化成 \(O(\log n)\) ?这直接把路走死了啊,我一直在离正解很遥远的暴力思想里出不来,就导致我花了一个小时怎么研究也没有研究出来如何 \(n\log n\) 解 T1。没有搞出 T1,我的心态开始有点炸裂,非常担心自己一个题也做不出然后 68pts 爬走。
此时约 17:30,走投无路的我只能转向 T3。说实话我考场上没有深入研究这个题,思想局限于之前打的 \(2^{2n}\) 暴力,很多性质当时就是没有发现,这也和没有搞出 T1 心态爆炸有关。我当时大部分时间都在优化搜索,想拿到 40pts 的部分分,这是没有梦想的表现。毫无头绪,离考试结束只有 20 分钟,我干脆直接放弃了。然后检查了一下文件,最后罚坐 15 分钟……
18:30,走出考场,心灰意冷。当时感觉有一车 40+0+28+0 的选手,可实际上大多数人的 T1 都不止是 \(n(m_1+m_2)\) 的暴力,有三分的,有 AC 的……
19:00 返程。
这场考试,对拍我也没有用到,因为我的得分代码都是暴力……
场后我得知 T1 正解思路,写了个基于正解的 \(n(m_1+m_2)\) 暴力,直接在洛谷上过了。随后紧接着想到找飞机停在第几个廊桥的时候可以用线段树优化成 \(\log n\),不到 10 分钟默写了一个线段树然后 \((m_1+m_2) \log n\) 又过了。
后来过了几天,我重新拿起 T3,自己想了一个小时,往洛谷一交,也过了。
真就考场上该会的也不会了(
别一上来就按着暴力打,这样会局限你的思想,要把最充足的精力留给正解。把暴力留给最后,打暴力也占用不了太多时间。
需要有充足的时间想题,没有想明白的时候不要动键盘,否则可能会在一条错的道路上走绝,改都不好改。
相信自己,一定能想出正解。维持好的心态,千万不要中途炸心态。即使考试前半程失利,后面也要充满自信。
以后训练的时候要训练解出题目正解的能力。这次 CSP-S2021 暴力选手几乎没有分可拿,非常有力地让暴力选手认识到正解的重要性。
学会享受考试。