【游记】CSP 2024 流水账

c_y_y

2024-10-14 21:09:11

Life & Travel

省流:
J 估分 100 + 100 + 100 + 5 = 305,实际 100 + 100 + 100 + 0 = 300
S 估分 100 + 80 + 20 + 16 = 216,实际 100 + 80 + 20 + 0 = 200

Upd 24.11.6:更新了官方分数以及优化了阅读体验

Day -13

打了一场 S 模拟赛,还不错,骗了很多分。

Day - 6

又打了一场 S 模拟赛,这次没有骗多少分……

Day -1

教练为我们鼓气,自己心中有些紧张的。

后天的这个时候,我正在坐在考场里面啊!

晚上理了一些东西,复习了 Tarjan,匆匆睡去。

Day 0

开心!

坐在高铁里面饿死了,花了 39 rmb 买了一份番茄排骨面。

等一下筷子怎么这么短……好吧里面还有一段增长的……

出于下雨天,从杭州东站到洗好澡倒在床上已经过去两个小时了。

有点失眠,有激动,也有伤心。

Day 1 ※

J 组

果然很早就醒来了,躺了半个小时就起来了,此时是 6:30。

路上还是非常紧张,但当我真的坐在考场自己的位置前,内心却是无比平静。

杭师大大屏 windows10 好评!

8:15 公布压缩包密码。

建好文件夹。此时突然发现 sticks 只有一个测试点,猜想可能是结论题(伏笔)。

8:25 公布 PDF 密码。 快速浏览了一下题面:poker 是一道模拟一眼题,explore 是一道图上路线问题,可能是模拟优化。sticks 是求满足方案的最小数,很可能是搜索优化,chain 则是求方案合法性,猜想 dp。

先花了 15min 切了 poker。感觉怎么打都能满分,我怎么选了最难打的一种?

然后开 explore,发现 O(Tk) 的模拟不会超时。于是迅速写完。过了大样例是 8:56,赢麻了。

接下来开 sticks,第一眼不会,滚去看特殊性质。n 是 7 的倍数 很显然,由于摆出 8 的的棍子就有 7 根,又要保证最小,所以位置上全是 8 就能保证位数最小。

然后就是 存在一个正整数 k,使得 n = 7k + 1 也不难想,简单证明一下发现,前面是 10 后面跟 8 最优。

由特殊性质联想到,按 7 的模数分类,特判前两位即可。速速写完。此时才 10:00,赢!

写完 sticks 后,我总感觉只分讨了前两位是错误的。结果我随便找了个数:17,结果发现 200 比 228 要更优。我的贪心伪了?

此时心态还没有崩,冷静分析一下其他算法:DP 可以做到 O(n),但是最优性好像很难维护……dfs 复杂度直接爆炸……

没有办法,还是打了一个暴力滚去看 chain。可是作为 T4 谈何容易?连输入都要稍稍优化,暴力都不会打!

还剩 1h,我在 CSP-J 只能获得 220?

不!在冷静地吃了 趣多多脏脏黑巧克力味曲奇饼干 后,我突然意识到可以通过暴力打表找规律?

我迅速行动,结果到头来才发现只有模 7 余 3 的数要分三类,其余只用分两类,而我要是随便写的数不是 17,可能这把就要寄了,我的 RP!

趣多多好闪,拜谢趣多多!

写完 sticks 去上了个厕所,回来吃了个士力架,全部火力攻击 chain

刚开始想了 区间 DP,可是复杂度爆炸。然后又想到了转为图论去深搜,结果边数极多数组存不下……

最后 15 分钟,我只好打了一个 r=1纯爆搜(复杂度上天),检查 freopen,填写字节表。

12:00,考试结束。

问了一圈周围人人均 300+,今年题目难度差距有点大……

chain 是图上 DP?广搜?我怎么没有想到……

但是 sticks 细节很多,很多人贪心找规律的应该都会栽在余 3 的上面。

只要 sticks 不挂我就有 1= 了吧。

回到宾馆睡不着,写了一会游记,睁着眼躺着十分钟就去 S 组了。

S 组

roumeideclown 好像 J 组考的不错,祝他 S 组好运!可是他说他们用的是 windows7,嘿嘿。

14:30 开题。duel 是一个贪心题,双指针秒了。detect 一眼区间覆盖,还是机械运动?正好是我的强项!color 是染色找最优解,应该是 DP 优化。arena 则是多组数据找胜利者,一眼不可做。

看完题目 5min 做完 duel,大样例一遍过。此题难度远小于 2023 密码锁 啊。

接下来就是小丑时刻:

detect 先打了特殊性质 A 和 B。然后通过特殊性质 C 想到了正解。

然后花了 1h 写出并调好每一辆车超速的摄像头区间,成功通过第一问。调试的时候发现一个 m 打成 n

结果脑抽的是第二问我不会做!我想到了若干个都对的 O(n \log n) 瓶颈在排序的贪心,结果都 WA 了。以为自己伪了,又过了 1h 后打了 O(n^2) 的暴力,加上部分分代码,组成一个 114 行的巨型代码……

color 打了个 dfs 剪枝跑路,DP 的优化确实是我的弱项。

接下来是不可做的 arena,为了尊重自己看题的十分钟,我打了一个特殊性质 A,好像有 16 分。然后就不会了。检查 freopen,填写字节表。

18:30 考试结束,S 组的游记比 J 短多了,因为确实没有什么波澜起伏。

一出考场就想到了 detectO(n) 贪心,emm。

arena 居然是黑题,幸好没有花太多时间。

Drifty 爆切 detect,hgcnxn 更是爆切蓝题%%%。

感觉分数线在 200+ 啊。感觉有点悬。

Day 114

出分。

J 组中,我的 chain 只有 0 分,原因是没有考虑 cnt 的初始值。然后爆搜没有调出来。

S 组中,我的 detect 居然没有挂分,这也是我打 OI 最自豪的一次。不过遗憾的是 arena 真的成了不可做,不知道为什么 O(Tn) 会爆 TLE。

小图灵显示我两个都是 1=,实际 S 非常悬。