CSP2023游记

发布时间 2024-01-11 17:11:10作者: gevenfeng

CSP2023游记

Day -3

去一中试机,顺便打了一场模拟赛。写了 T1,T2,T4,感觉良好 (?)。T3 赛后看了题解,发现就是一个链表还比较水的题,说明有很多学过的知识忘了,准备之后复习。

Day -1~0

学校开运动会,但是我不是很感兴趣,就去了机房。回顾了很多之前的算法,把几乎所有学过的模板都打了一遍。打的时候发现 Tarjan 、KMP 和匈牙利算法都不会打了,赶紧重新复习了一遍课件,把模板背下来了。(结果都没考)

晚上去一中附近开了房,又把图论模板复习了一遍。23:00洗了个澡睡了。

Day 1

7:20起了床,吃了早饭。去了一中,见到了果果,拍了个照。然后进了考场。

8:30准时开题。

看了 T1,想到了 90 分的开数组暴力模拟。\(n \leq 10^9\) 的做法想了几分钟没想出来,回去又看了眼题,发现元素 \(n\) 在被删除之前一定是序列的最后一个元素,且每次操作后的编号可求,然后就切了,时间复杂度 \(O(\log_{\frac{2}{3}}(n))\)

9:15~9:20 开了 T2,发现好像是一道比较水的贪心 (?),用优先队列乱搞了一下,时间复杂度 \(O(n \log n)\)。9:50 左右过了大样例就没管了。(事实证明还是对拍比较稳妥)

10:00 读完 T3 的题,发现就是一道水的大模拟,所有的细节都告诉你了,就差给你代码了。10:30 左右写完了,一遍过了大样例,时间复杂度 \(O(tn)\)\(n = \Omega(10^3)\)。感觉大样例已经把所有情况都包含了,就放了。

10:40 开了 T4,想了很久,没有很好的想法,连唯一的思路也被自己 Hack 了。11:20 考虑到实在没有想法,再加上脑子很晕,去上了个厕所,开始打自己认为比较正确的做法 (事实证明是错的)。11:40 过了大样例,造了几组数据没 Hack 掉。但是时间复杂度是 \(O(nk \log nk \log t)\)\(t = \Omega(10^6)\),数据量比较大的情况下可能会 TLE,但是没有更好的想法了,就没管了。返回去检查了一下前面的题的思路和 freopen。12:00 出了考场。

下午 14:15 结束午休,返回一中。14:30 发了压缩包密码,但是没发 pdf 密码,文件一直打不开,在那儿晾了五分钟。14:35 终于发了 pdf 密码,开了题面。

T1 一眼水题,难以置信 S 组会出这么简单的题,还自我怀疑了 1min。后来发现就是这么简单,用了 30min 把代码写完,过了大样例。时间复杂度 \(O(nm)\),稳过。(写了 1720b,喜提机房最长代码)

15:20 看完 T2,感觉可消除的字符串都是由多个回文串拼接而成的,但是没想出来怎么拼接。想了 1h 都没想出来,最后打了个 \(O(n^3)\) 的区间 dp,过了大样例就放了。赛后 A 了,果然可以通过拼接进行 dp,但是考场上就是没想出来。

T3 看起来是一个又臭又长的大模拟,写了接近 1h,但是始终过不了样例。最后就骗了一个特殊性质的分。

18:00 才开了 T4,感觉是二分答案,但是时间不够了,就没打,随便写了一个玄学做法。18:35出了考场,感觉十分的炸裂。

总结

相较于去年而言肯定都有进步。(至少两个组别的奖项都应该会提高一级)。但是没有注意细节,T2 有种特殊情况挂掉了,说明不想写对拍是会遭报应的,以后必须能对拍就对拍。提高组思维还是不够开阔,T2 明明有 \(n^2\) 的括号匹配做法却没写,说明暴力的能力不够,以后要多加练习。从提高 T3 可以看出代码里实在是太弱了,一遇到就挂,以后要珍惜做模拟题的机会,多做一点题,经验丰富了应该就写得出来了。