关于CSP-S2019的一篇游记
怎么讲呢?
Day1:7:00左右从家里出发,准备还是做得比较充分,早饭也记得吃了。路上闭目养神了一会儿,7:50左右到了大门附近,和大家再次把一些自认为还是比较重要的数据结构之类的再复习了一下。进去后在考室外等了较久的时间,调整了下心态,终于在8:20左右踏进了考场,先确认了一下键盘和鼠标以及电脑设置,感觉还是比较放心。
8:25左右,提取码已经写到黑板上,然而自己由于看漏了一个’?’,一直没解压起。8:30左右,考试开始,仿佛身边的同学都已开始思考了,我这边还是没有解压起,终于在监考老师的帮助下解压起后,时间都已过去了好几分钟。
于是调整了下心态,回想之前提到过的考试策略,开始总览3题。
T1:乍一看没啥思路,但总觉得有些规律。于是手打了一个在N<=3情况下的表,在发现N只对答案长度有影响而对答案值无影响后,开始研究K与答案值的关系。规律还是不难找:答案值就是K^(K/2)。后来又研究了N<=4的情况,觉得没啥问题,觉得代码也就是几行之类的,就又去看T2了。
T2:一道和括号序列有关的树题,当时并没有马上反应过来是维护一个栈,以为是一个树形Dp或者链状结构之类的,觉得应该做得出来,也没具体想细节,就又去看T3了。
T3:看了题面后,想了想正解,觉得想不出来,于是看了看题目中给出的暴力分,算了一下预期得分,就回去打T1了。
在回滚的途中,突然发现T1给的Subtask分了95分与100分,仔细看了看发现如果数据开long long 只能过95分。当时也没有想ULL,就只觉得出题人太坑了,故意留出5分让你打高精度,我当时想:这5分还是比较重要。于是2,3行左右1min以内的代码被我敲成了60+行和50min的代码,打完后调了调大样例把大样例过了,觉得差不多了,时间可能浪费得也比较多了,就直接去打下一道题了。
在确保理解了T2的题意后,开始打链式结构,发现时间复杂度过不去,于是开始打树形Dp,打了几下过了小样例,发现第一组大样例过不了,然后就是一直自己出数据调试,在不知不觉中打出了一个栈一样的东西。当时时间过得也比较多了,还剩90min时就很慌,但还是忍着性子调试,终于在还剩45min时调过了第二组大样例,然后开了无限栈过了第三组大样例。当时其实很慌,但觉得自己应该还是能骗到些分。
开始打T3,观察了下暴力分的分布情况,觉得链的情况应该还是比较好打,然后就一直打,在还剩2,3分钟左右过了自己造的一组很水的数据,也没管太多,觉得必须得检查了,就开始看前面的题。
考试结束,觉得毕竟过了大样例,预估分200分左右,最后一道题不能确保能不能骗到。
与大家交流了下做题情况,发现其实Day1大家差不多都在200分左右。
晚上回去想了想,觉得Day2的分应该比较重要。
Day2:7:00左右出发,状态相比昨天少了些紧张,多了些从容,也没关注太多,就直接进入了状态。
T1:数学题,一眼容斥,也没想太多细节,觉得应该可做。
T2:觉得是一道Dp之类的,没啥思路。
T3:觉得应该很恶心,发现暴力分似乎很高。
开始推T1的细节,发现要2^N预处理,在苦思冥想了1hour左右后,终于憋出一个Dp优化掉了预处理,然后整个人都是懵的就在那里打题。就是想到一个仿佛比较正确的方向就直接开始打,每次又是打到一半多左右又觉得不对,就又删掉之前的代码。
昏沉得有点久后,出去上了个厕所清醒一下,时间也只剩90min左右了,而自己一道题都没打出来。于是放弃了打T1的正解思路,开始打暴力,觉得自己仿佛想到了一个O(2^N/2)的思路,但始终调不出来,决定先打后两道题。
T2依旧没有什么思路,于是打了个最暴力的暴力,就急着去打T3了。
T3的骗分还是比较好想,找找规律就出来了。
测完T2,T3,又回去调T1,在调出来后才发现是一个O(2^N)的算法,一下子预估分低了32分。
出来以后,通过交流发现大家Day2骗的分都比较多,算了算Day2的骗分甚至能上200分,感到有些遗憾。
两天的总分预估:350左右,省一应该还是比较稳吧。
正题:炸裂
之后去洛谷上交了下两天的代码,Day2的分数还是跟预估中的一样。然而Day1就直接炸完了,T1T2一起爆炸。
当发现T1高精度打错的时候,当发现T2由于一个细节凉透的时候,
真的很懵,其实很想吐槽出题人的大数据水。
但想一想,还是自己没有做好万全的准备,没打对拍,时间把握不对,没过多检查,等等。
好吧,AFOing,也不知道能不能再走下去。
但愿LG,Tiw大佬们能取得一个满意的战绩。