2022 BJ CSP J/S 第二轮 游记

· · 个人记录

前言

今年着实没有准备,大家当个笑话看罢。初二期中在CSP的前天结束,我就周四上午考完英语,下午去找学长练了会,别的时间一行代码、一道题也没看。现在想来挺后悔的,难得在普及赛场上遇见字符串大模拟,在提高赛场上遇见数据结构(这两个我都比较喜欢),如果好好准备,结果大概率会不同罢。

“每一次机会,是要珍惜的;不珍惜的,铸成了悔。”

CSP-J2

考场离家很近,出发较晚。大早上起来由于前两周多的时间都没写代码,很慌,所以临场敲了树状数组和线段树,树状数组一遍过,线段树一直挂,挂到现在。

到了考场之后看见了在隔壁区域监考的教练,希望能RP++。坐在我身旁的是个小哥们,小学四五年级的样子。考场很挤,椅子、键盘、鼠标都不舒服(是不是我要求太高了),但勉强能待上几个小时。

十分钟写完T1,不知道怎么拍,就直接看后面的题了。

看到T2的提示觉得可能是个数学题,于是就先打了暴力(我数学很垃圾),基本没什么问题,去看T3。

T3我很喜欢,大模拟,字符串。(儒略日就很无聊,这种字符串模拟还是很有趣味的。)简单模拟了样例,觉得没什么好方法,直接DFS罢。读书人的事,能叫暴力么,虽然这就是一个暴力程序,并且挂了将近一个半小时。

十点多编写完毕,开始调试。刚开始调的时候想起老师教的好东西GDB,结果发现忘记怎么用了,一直不行。我试了几个编译命令,最后终于折腾出来,愉快地开始调试。这玩意是真的好用,十点半左右除了&运算之外的运算都可以出正确结果了,虽然复杂度有点高。

旁边的小哥们很认真地调试,怕不是个巨佬。

我觉得T2没那么难,教练也总让我别把普及组的题想复杂。转而开始发掘T2的性质。浅分析一下,正解应该是O(nlogn),现在复杂度是O(n√n),那应该是不用分解质因数的,应该能套个log的算法。什么玩意能用在这?二分。推了推式子,发现了真理,我非常高兴地开始写二分。写着写着发现是个凸性函数,怕不是要三分。三分试着写了些,写挂了。天才的我把凸性函数截成两半,分两次二分,最终大样例过了,写了个对拍。

但是我下午考试写对拍的时候才想起来,我忘记加srand()了。

总之当时是一片Accepted!,我很高兴。还剩一个小时,T4写暴力都挂,知道是不降子序列但就是忘了。剩下的时间就耗在T4和检查各题上,T1加上了long long,但最后还是因为少了特判丢掉了10pts。

考完试,旁边的小朋友兴致勃勃地和我分享T3怎么写,他还说“其实T2挺简单的,推个式子就行”。

时代变了呀!

上午回家之后吃了饭,看了会手机,线段树也没心情调,ST表也没时间看。没睡够觉就匆匆启程了。

CSP-S2

到的稍微有些晚,旁边已经坐了一位大哥,看起来很淡定,很安静,感觉像是个大佬。

灰溜溜地打开题,认真读题的时候四周已经一片键盘声了。我不急,就当他们全都是省队的人好了。按照习惯读完四道题之后,认为T1和T2可做,剩下两个直接放弃。

Never gonna give you up...

我的选择是正确的。T1暴力甚至都不会,只会k=0的部分分。应该能拿到10pts,转而看T2。我刚开始考试时已经很困了,困劲一直到开考一个小时才过去。这之中除了写T1以外,只写了T2的暴力,没有任何进展。

清醒后,仔细观察题目给的两个性质,觉得有点东西。深入琢磨一下,发现ST表极有可能是正解。log的复杂度实在是太诱人(不是)了。

我中午怎么看手机不看ST表,血亏。

定下策略是面向数据编程。我还有三个小时来写这个题,时间充裕。开始整活。首先,ST表已经基本忘记了,需要手推。推了半天,推出了O(n^2)的ST表。这倒也行,比O(n^3)的暴力好些。于是开始写面向两个性质的代码。写完之后觉得问题不大,拍了一下,大小样例都过了。

精打细算,仔细琢磨西西弗样例的毒瘤性,反复压空间,最终定型在一个比较满意的、长度为2K的代码版本。

经肉眼观测,我认为这份代码能过1500的数据,但西西弗应该不会给这种数据的。所以我就当暴力只能拿200的数据那一部分的分,1000的数据就靠不完全ST表了。

后来的成绩证实,我大抵是对的。洛谷上是60pts,已经达到我期望的上界。

没再看别的题,静等考试结束。旁边的大哥考试时账号出了很大的问题,也不知道他为什么那么淡定。最后他T4的代码没能交上去,我临走时监考老师还在帮他解决问题。

出考场时和教练进行了简单的交流,在门口等了等学长们,感觉他们发挥的应该不错。

一天到这里就结束了。晚上很放松,比考完期中还放松。和我水平一样的OIer们也算是能过个年了。

后记

城市里不许放烟花。但新年的夜晚,总会灯火璀璨。人们总是喜气洋洋,衣着红得艳丽、喜庆。周六的夜晚,是多么普通,但又多么不同。从考场走出的考生们,终于如释重负,人流三三两两,满面笑容。烟花,刹那绽放。

人生的坎坷,就在于人自己一次次的主动选择。世事无常未免有些悲凉,我们只需做好能做的,做出自己不后悔的选择,便能给失落的自己一个慰藉。