CSP - 2020S
CSP2020暴毙赛
测了一下官方数据, ,竟然没有一题是 AC 的。。
失分情况
T1
这毒瘤题把人搞傻了,最后调到公元1600年前一定正确,之后的出了点神奇的错误(公元 1582 年 10 月 15 日(含)以后的闰年写挂了)
T2
这题应该挺简单,没上 因为
1 | for(int i=0;i<k;i++) if(!((sta>>i)&1)){ |
1后没加ull,但我记得应该加了吧?!毕竟在算答案的时候都有(莫非手抖没保存)
1 | if(t<64) { |
还挂 分因为 炸 unsigned long long
,要特判。
T3
当时被 T1 降智没仔细想,暴力+线段树竟然拿到
回过头看也挺简单,考虑每个单点加的贡献为 加的值 乘上 它之后乘法的积 ,将操作到序,在拓扑图上打标记,最后搜一遍统计贡献即可。
T4
没时间想,只打了 的手模。
考场开题情况
先只看了 T1 ,细细品读后感觉写起来会很毒瘤,然后开始写,写的时候被恶心到了,经常出现 、取模天数相差 导致出现一些神奇的日期,调到 发觉情况不对,上个厕所清醒一下做 T2。
发觉 T2 挺水,到 时调完并检查,没去想 的特判,
看完 T3 ,T4 ,先想 T3,到 时还没思路,自闭了,就打算先写暴力, 时调好 线段树暴力,小样例过了,大样例显然TLE。于是想 T4 ,一开始想了一个假贪心,然后发现它确实假了,再次自闭, 已经 ,先写了 的手模,感觉 写个搜索之类的也可以骗点分,但是实现起来极其繁琐(估计哪里想错了),于是在 时放弃,回头看 T1
测出了几个在公元 1582 年 10 月 14 日之后的错误,把公元后的代码重构了一遍,“距离考试结束还有15分钟”,当时十分紧张,还有 1600 后 1000 年一周期 没写完,到结束时还没调好,T1 最多只有 了。。。 自闭ing。
总之,T1 把我心态搞炸了…
反思&经验
- 应该先把所有题过目一遍,(跳过T1先做T2,心态应该会好很多)
- T2这种爆
unsigned long long
的考虑还是不周全,要考虑一下极端数据。 - windows 和 Linux 命令不同,Linux 比较文件
diff file1 file2
,加-Z
忽略行末空格,或者vimdiff file1 file2
对比更清晰。而 windows 下fc file1 file2
,加/b
,逐行匹配加/l
- 像 T1 这样的题,应该再打一个纯暴力,方便调错。
- 合理分配时间, T1,T2 这种应该耗时过长应该先放一放,冷静一下。
比较合理的时间规划:
看完所有题,心里有个数
应该能把T1,T2敲完吧,(只要没有儒略日这样的毒瘤),卡住了先过
想T3正解,如果暴力好敲的话迅速敲完方便之后对拍。
有想法就先在 前写完,不然看 T4,与T3同样,T4肯定比较难,多写一点骗分。
后先检查文操,文件目录等,T1,T2 再想想有没有没考虑的,最后还有没调出来的继续调。