CSP2024 游记

max0810

2024-11-05 20:02:57

Life & Travel

第六次参加 CSP 了,算是老手了。

Day -?(9.21)

今天是初赛,还是写写吧。

考点在天府七中,离我家比较远,所以就在车上睡的午觉,但是没有睡着,所以起来的时候头比较晕,但是因为这是初赛,所以我觉得随便考考也行,不用太担心。

看到第一题,我非常激动,因为这个是我去年在 NOI 笔试中背的,所以我直接秒了,应该比其他人有优势。然后中途我就一直做,做到半小时我发现旁边已经有个人做完了,但是我钦定他大部分都是蒙的,反正并没有影响到我的心态。然后我就一直做做做,发现整个过程都特别顺利,每道题都顺着思路就做出来了。做完的时候大概还剩半小时,于是我就随便检查了一下。出场的时候我甚至以为我要 AK 了。

结果回家一对答案,发现最后一题错在了一个很唐的地方,当时我觉得我快要 AK 了,非常激动,然后又因为比较困,头脑比较混乱,然后直接就想当然的选了个错误答案(埋下伏笔?)。好在最后其他没有挂分,最终得分 97 分。

Day 0

今天进行了板子大赛,我发现好多板子我因为好久没用居然都有点忘了,比如 KMP,CRT 之类的,然后就都复习了一遍。

Day 0.5

上午睡到了九点过,然后又打了下平衡树的板子。但是中午因为过于紧张,导致午觉不是睡得很好,反正还是比较困的出发了。

Day 1

今年 CSP 我的目标当然是要 AK,反正我还是比较有希望的。

进入考场,找到我的位置坐下。我坐在一个条件非常好的位置:背后靠着窗户,然后左右两边都没有人(我们隔一个位置做一个),所以相对很安静。

此时离开考还有个半小时,我看大家都在敲键盘但是监考老师没有管,所以我觉得先敲几个板子应该问题不大。于是我就先把快读啥的写好了,然后我感觉比较困,就趴着睡了会儿,没有再打其他的板子。

此时是 14:28,下发了密码,直接开题。

看 T1,T1 非常的简单啊,直接从小到大扫,记录当前剩了多少个数,反正写了个 10min 就过了大样例。

然后看 T2,读了题之后发现思路很简单,就是每个车能被测到的一定是一段区间,这个区间可以二分,然后第二问的答案就是用最少的点覆盖所有区间,这个是经典贪心。

CCF 甚至非常良心的给出了速度的计算公式,然后我都不需要然后向上向下取整或者小数,反正写了一会儿。结果一测发现挂了,然后检查了下代码发现二分和贪心都有个小地方写错了,反正改了之后就一遍过了大样例。写完 T2 大概花了我 40min,我觉花的时间有点久了,于是准备加快下速度。

我先做好了 T3 可能比较难的准备,结果一看题面非常短,再一想,发现不是只需要记录每个数上一次出现的位置,然后设个 f 数组,每次取前缀 max 就行了吗。我原本以为我想的太简单,T3 不可能就这么简单,但是当我已写完一测,发现直接通过了大样例,直接把我震惊到了:我 T3 从开题到写完只花了 10min。但是我觉得大样例有强度,然后我又验证了一下,就认为我的做法是对的,直接去看 T4 了。

此时仅仅过去了 1h,我怀着自信打开了 T4。T4 的题面很长,我先花了有十几二十分钟把题读懂,然后把样例模拟了一下,就开始想。然后我简单想了一会儿,就想出了一个 n\log n 的做法(每次直接往上合并)。我看了一眼时间,大概是 16:00,我就选择了不写带 \log 的做法,觉得继续想有希望把线性做法想出来。

然后我就一直想,中途上了几个厕所。因为中午睡的不是很好,当时思路比较混乱,再加上旁边有小朋友一直在敲桌子(当然最后我忍不了了直接提醒了一句),所以思路不是很清楚,经常就是一个细节还没想完又去想另一个。中途甚至有好几次我想要不先把暴力打了,但是都被我否定了。

就这样,我大概在 17:00 的时候觉得想到了所有的细节,但是总体的框架还不是很明确。然后我就开始非常激动,觉得自己要 AK 了很兴奋

于是我就决定直接开写,写到哪里有地方没想清楚就继续想。然后我就又写了个 40 min,发现代码居然写得很顺。但是不出意外,一测样例发现全部挂了,我就开始调试。在调试过程中,我发现我的代码里面有好多地方没有考虑清楚,然后还是因为当时脑子很混乱,又激动又紧张又有点困,所以调试代码的效率很低下,但我还是选择在这样的状态下一直调到结束。

最后,到了我电脑上显示的 18:28 时,我依然没有调出来,就在我准备继续调试时,监考老师在上面提醒说:“请大家有序离场”,我突然反应过来这个电脑的时间要比正常时间慢两分钟!我马上点开程序回收系统,还剩 23 秒,直接给我震住了,然后我迅速地把所有的调试语句注释掉,打开 freopen,几乎是最后几秒提交了。幸好我前三题是写一道交一道,要不然可能最后都来不及交了。但是最后也是没调出来 T4,遗憾离场。

出考场,我以为我 T4 代码连样例都没过去,应该只能得 0 分了,最后就是 300 分,而且前三题没写对拍,我还不确定会不会挂分。在问了其他人成绩基本上都比我高后,我的心情比较失落。晚上和我的初中同学去吃了火锅,然后一起耍了一会儿,心情好了许多。

Day2

上午没有事干,我就在家里默写了考场的代码,然后又调了有 40min 左右在洛谷上通过了,我考场上没调出来的代码还有好一些地方没有考虑清楚。总之,这场考试暴露出了我的问题,但同时也有做得好的,比如前三题做的较快,而且 T4 我赛后问了似乎就我想到了正解,但是我没有把握好这个优势。

回到家后,我自己默写了考场 T4 的代码,然后又调了有 40min 左右在洛谷上通过了,我考场上没调出来的代码还有好一些地方没有考虑清楚。然后写了篇题解,自认为写的不错,推荐一下。

我又把 T1,T3 写了,都在洛谷上通过了,T2 细节有点多不想写。此时我我又突然反应过来我 T4 的代码应该是可以过 A 性质的,所以不出意外的话分数应该是 316 分。

Day?(11.5)

查分了,我怀着激动的心情点开网页,然后显示:

成绩单未上传,请稍后查看!

一返回,时间直接变成了 16:00。等到 16:00 一看,又变成了 17:30。。。

当然最后还是看到了分的,100+100+100+24=324。

我惊讶地发现我 T4 居然有 24 分??直接反向挂 8 分,CCF 数据还是有点厉害的。但是这个成绩在我们机房也只能算个中等。

总结

总结是直接复制的联考总结里写的东西(

这次比赛给我的印象很深。首先我做前三题只花了 1h,算一个比较快的时间,有一定的优势。但是在想到 T4 暴力时,我没有马上打,而是选择了想正解,但是我错误的估算了我想正解的时间,而且我中途有想打暴力的想法时,我都认为应该赌一把,我觉得我可以想出 T4。

最重要的是,我在想出 T4 时,时间还比较充裕,但是我并没有选择先上个厕所冷静一下,而是在很激动的情绪下写 T4,这就导致了我写代码的时候思维很乱,而且有很多细节没有考虑清楚。以后想到题最后都先让自己冷静一下,要把所有细节想清楚,把总体逻辑理顺再开始敲代码,这样能节省很多不必要的时间浪费。

总之,这场考试暴露出了我的问题,但同时也有做得好的,比如前三题做的较快,而且 T4 我赛后问了似乎就我想到了正解,但是我没有把握好这个优势。

写到这也就差不多了,希望我 NOIP 能取得个好成绩吧!