CSP2020游记
考前:
借鉴了去年的题,以及近几年的题,发现考dp的频率出奇的高,于是考前一周基本上都在练dp。考前把学过但有点遗忘的模板过了一遍,考前那天晚上开始就不太想打代码了,有点紧张但还是比较放松,主要比较担心的就是考场上写挂该得的分。
考试当天中午在去考场的路上还很庆幸地睡着了,期待下午精神会挺好的。进考场时心态还算比较好,但我也完全没想到这个下午是如此的凶险。
考试经过:
拿到题先大致浏览了一下,t1模拟(但是完全没有看出来是个大大大大大大模拟),t2显然跟二进制有关,但没有细想(完全没有想到t2比t1简单还好写很多),t3认定是数据结构,猜测可能跟考前一周一次模拟赛的一道题很像,t4初看没什么思路(几乎没怎么看)。
紧接着,我做出了整场考试最错误的事———先开t1。题面很长,但我忽视了题目中大量描述关于闰年和两种历法的内容。看了下样例一后觉得思路还是很简单的(当时只看到了每四年一个闰年的规则),于是简单地只判了四年和一年,成功过了样例一。然后样例二就来教我做人了,我这时才发现要删掉那十天,以及特判一百年和四百年的情况。可能是刚进考场不久手感不够火热,还有就是鼠标和键盘很不适应,打代码很不顺畅,这个时候发现读错题已经过去了半个多小时。没办法,只有硬着头皮继续写,当时能想到的就是先判断在哪个四百年,再判断在哪个一百年,之后的判断跟之前一样。但写着写着发现要计算的节点比想象的要多,一直在用计算器,同时又很怕算错哪个节点了,草稿纸上也在跟着模拟,两页的草稿纸很快就用完了。
t1越写越晕,中途看了眼时间,已经过去一个小时了,但看着眼前已经超过两百行的代码,都这样了又怎么敢放弃呢,况且这t1显然是大多数人都能A的。没有退路可言啊,只能继续边算节点边打代码,我的某些细节处理比较麻烦,导致我计算量比别人要大一些,这样写代码速度也提不起来。
终于写完了(最终大概340行),此时已经过去了两个小时,运行样例没过,开始调试,在三百多行的代码里找出了大概五处小错误,但样例二第二个询问始终没过(样例二第三个询问都没问题),当时已经锁定了问题出在了100的倍数而不是400的倍数的年份所在的那四年,但调了几遍都看不出来有什么问题,运行了一下大样例,人眼看得到的都没啥问题,但调试发现里面有100倍数(我样例二出问题的情况),心态有点崩,感觉这个小错误可能会危害很大(毕竟询问很多),但此时已经过去了两个个小时二十分钟,我抱着侥幸心理(这个时间点也不敢继续坚定地刚t1了)就跳过了t1。
当时头已经很晕了,出去上了厕所,吃了颗巧克力,想让自己重新焕发斗志,但两个多小时过去了,心态怎么都是受影响的。t2手模了一下样例,有了很简单的想法,但当时我不敢相信正解会这么简单(t1已经让我畏惧起了这套题)。当时可能头很晕,代码不难写打得有些慢,接近半个小时才写完,一次过大样例就走了,完全忘了unsigned long long这种事。
剩下的时间大概一个小时多点,我知道这点时间以我的实力能写出正解已经不现实了,决定先把暴力拿了。t3打线段树,还出了一些平时就犯的错,调了一会才过样例。这时只剩十五分钟了,想着t4暴力都没拿,还是想拼一把,于是全神贯注读题,然后开始rush,那时的我已经感受不到键盘的不顺手了,就只是不顾一切的狂赶,但十分钟终究还是太短了,还有五分钟考试结束时,我看着眼前残缺不堪的代码,绝望地深深地叹了口气,爆了句粗口(也不顾周围人的感受了),加上了rand就回去检查freopen和文件名什么的了。
考后:
这次考试我无疑是考得很烂的,认识的人没有一个比我分低的。考前着重练的dp也完全没有用。
主要问题显然出在t1,花费太多时间,严重影响心态。平时确实不太重视大模拟,但本次考试暴露出了我在代码实现方面的大问题,实现方式不优秀,细节处理不好。机房的大佬t1打了22k的代码,最终A了t1,这样看来,我和别人代码实现能力差距显著。
其实我平时考试也经常一道题上花两个小时,但这次考试这种事情发生在了t1上就真的没办法了。懂得取舍确实非常重要啊。
当然,我的心态还需要磨炼,考场上无论发生什么,都需要保持冷静清醒的头脑。我最终t1是得的分寥寥无几,试想如果直接不做t1,两个小时的时间多出来把后面三道题做到自己的最好显然是比现在这样好了太多。
考后我也需要更重视每次考试的策略,多补一些我现在还不会的东西,多虔诚地向大佬请教,搞懂每一个问题,每道题都要自己打出来,多训练自己的代码实现能力和理解力。
加油吧,学oi的道路不会是一帆风顺的。