CSP2020总结

· · 个人记录

前言:

官方数据出来了,score=100+95+70+20=285,没有自测分数高。

总体来说,还算可以,但是考试状态以及做题策略完全与预计偏差。

分析:

挂分原因:

T1 很好,没挂分。

T2 95分,原因是没想到unsigned long long 最大能表示 2^{64}-1 ,而题目数据可以做到让你输出 2^{64} ,虽然会自然溢出不会 RE ,但是仍然无法表示。

解决方案:就是特判输出 2^{64} 的情况,然后计算机按出 2^{64} 或输出 2^{64}-1 手动加 1 得到答案(其它爆unsigned long long 的情况会因为要减去 n 变负数,又溢出回来,这种情况算是运气吧)。

T3 70分,民间数据有80,想的是正解,用的是逆元,结果有乘 0 操作,0 没有逆元,导致挂分。(考场上没想到从后往前做,所以沦为和线段树暴力老哥同分)

解决方案:特判乘 0 操作,直接从最后一次乘 0 操作开始。

T4 20分,本来就是骗分代码,不太奢望。(只有 20 分钟,实在敲不出啥),但据说 T4 部分分很好拿。

策略原因:

原本做题计划是:

1、T1,T2 迅速写过,争取在 30~60 分钟内解决。

2、T3 在 1+ 小时内至少拿完所有能拿的部分分,尽可能相出正解,剩下 1+ 小时留给 T4 暴力,骗分,正解

3、最后半小时查漏补缺,检查文件输入输出,是否删完注释,重测样例,检查是否会有 CE ,基本不修改代码。

现实是:

1.5 个小时熬在 T1 上了, 0.5 个小时在 T2 上, 1.5 个小时在 T3 上, 20 分钟码 T4 骗分, 10 分钟检查。

其实当时在 T1,T3 上花大量时间其实很险的,赌对了还好,没赌对就死翘翘,即使现在也说不好当时的坚持是否正确,特别是在 T3 很难调的情况下。

设施原因:

原本我坐的那台机子坏了,做到了最后一排,键盘很硬,基本敲不快。

心理原因:

考试前买了瓶雪碧,结果路上是不是摇了几下,打开的时候爆炸了(对于我这种迷信的人始终不好的心理暗示),到教室机子也不好,键盘很老,其实当时心态的确不行,还好做题进入状态后就没考虑那么多,可以说是基本上心无旁骛。

简单看下第一题的时候,其实心理觉得还是道简单题,但是又看了一会,已经觉得看不下去了(刚进考场的时候还比较浮躁,一个字也没看进去,这种题面长得诡异的题必须要耐心理解)。

然后翻了下第二题,第三题,第四题,发现今年题目都十分不正常,没什么好想法,还是去写 T1 了。

写 T1 时,预计时间从半个小时,到一小时,再到一个半小时,内心满焦虑的,总想着是否该放弃直接写后面的题,但是还是决定写下来再说。

写 T2 时,想着要拉进度,做得比较快,过了大样例就跑路了。

写 T3 时,其实思路基本上就浮现了,但是细节问题纠结了半个钟头,码题时不断发现漏洞,修修改改,直到过了大样例。打的时候也老是想着是否直接换成暴力开 T4 。

写 T4 时,加上看题已经只有 20 分钟了,也没什么思路,方案很明确,直接判骗分走人。

最后确保无误后就开始检查文抄,子文件夹等一系列东西。

反思与经验:

值得肯定和保留的是:

1.在脑子清醒的时候(刚进场)先整体看完题目,有大致的思路。

2.写的时候边写边编译,分类讨论的时候手造样例,分段调试输出,所以最后要调的东西也不算多。

3.带了点提神的水果,考前做好了封建迷信活动。

4.考试前调准电脑时间,稍微快个几分钟,对时间其实心里还算有数。

5.考前一天洗了澡,人还算是清爽的,并不是很烦躁。

需要改进的地方是:

1.整体看完题目后应该要有一些基本的思路方向,并在草稿纸上记录,看题时间应该略微加长。

2.数据应该仔细查看,往往有很大的提示,并且题目中写的什么小细节如互不相同等也该留意,包括 64 , 0 什么的,看了之后要有感觉,想想会对代码实现造成什么影响。

3.从尽量拿完部分分的角度来看,考试的时候的确没有时间敲完每一道题的暴力,但注意下时间,如果时间还足够的情况下可以尝试正解,但是一旦是考试还有 60 分钟,那就基本上必须回头,除非很有把握。

事实上,虽然考场相处 T3 正解的确还行,但是在实现上有小的纰漏,还是跟一些优秀暴力的分数相同,我虽然想出来正解,但也丢失了 T4 更高暴力分的可能。

所以对于送分题 T1 , T2 的思路是尽量拿全分。

对于 T3 , T4 这类题来说,如果能写出 70 或 80 的暴力分,且比正解更加好敲的情况下,应该看下时间衡量利弊,最好是有时间先写个暴力上去,甚至可以直接写较高部分分,写完 T3 和 T4 的部分分后,然后再写正解,可以对拍。

4.提高写暴力的速度和读题准确度。

5.最好先手模玩样例再敲键盘。

6.注意空间和时间复杂度(我看到只给了 256MB )

7.基础不够扎实,对优秀的部分分反应不够灵敏

时间规划:

1.花 15 ~ 20 分钟先看完所有题并准备思路。

2.花 50分钟 ~ 80 分钟写掉 T1 ,T2。

3.花 90 分钟 T3 部分分和 T4 部分分。

4.花 60 分钟 T3 和 T4 正解。(想想看,或争取再拿点分)

(或 T3,T4 分别 70 分钟拿完能拿的分)

5.剩下 10 ~ 30 分钟全部留给检查,基本不改代码,调试并检查文本输入输出,子文件夹,重测大样例。