CSP-S 2024 游记

AzusidNya

2024-10-27 22:17:08

Life & Travel

CSP-S 2024 游记

Day -inf

机房集体 uno。初赛。过初赛。

Day -2

正睿。duel。duel。duel。

duel 2200,下分,duel 2300,下分,duel 2400 上分。

duel 疑似有点太上头了。duel 到了一个神必 n \le 50 但是最优复杂度 O(n),官解复杂度 O(n ^ 4),对手用 O(n ^5) 薄纱我的 dp 题,掉了 100+ 分。

Day -1

正睿。duel。duel。duel。

中午在宿舍用手机水 LA 群被宿管抓了,通过与宿管斡旋没被宿管没收,后将手机交给了教练并且这件事没有报给级组,为 csp 攒了点 rp。

晚上和 SError_ 超绝 [2000, 2200] \cap[2200, 2400] 单挑,下分,上分,上分。

Day 0

duel. 打板子。打板子。打板子。

来点乐子:

int mid = lson(u) + rson(u) >> 1;

if(tagmul != 1) {int v = tagadd(u); ...}

晚上和 white_carton 佬 duel 并且被一道 2000 最短路薄纱,然后切了一道 2400 的乱搞题。

Day 1

啊哈哈,怎么就到 csp 了,怎么感觉什么都没复习呢。抱着这样的心情,又打了一小时 uno。

然后是 duel,duel 和 duel。被 SError 爆了一道并查集,然后过了个弗洛伊德判环的交互题。

下午 2:15 进考场。然后瞎配了下 sublime。

2:25,获得了压缩包密码。打开之……怎么有个叫 duel 的题啊!!!

小看下样例,感觉像是这场比赛的签到题,然后发现还真是。

开 A。稍微想了一下,用桶贪心是不是就可以了啊,然后十分钟码了出来。赛后发现我原来在取众数。

然后开 B。扫一眼,怎么是个物理题,然后放空脑子去看物理公式。转化了下题发现是个线段上撒点状物,稍加思考觉得可以线段树优化 DP,但是感觉 B 题放这种东西不是很合理,并且不想码,遂跳过看 C。

开 C。看了一眼,想到了一个 O(n ^ 2) 的 dp,就是设 f(i) 代表前 i 个数且 ii 所在颜色段的最后一个时价值最大值。码码,码完了,过了大样例。然后猜测这东西是有性质的,但是不想动脑。猜测如果 a_i 有贡献,那么它前面第一个与它相同的点必然与 a_i 同色。稍微调整了一下暴力,尝试 continue 一些点,过大样例,结论对了!然后迅速改一下,优化到线性,拿下大样例,挂上了拍子。时间 3:45。

回去看 B。重新想了一下,这个线段撒点是不是可以直接贪心啊。感性理解了一下应该是对的,就开始码。

码码码码码码,先码第一小问。测样例,我草怎么没输出?

然后就是长达半小时的虚空调试,最后发现我写了个这样的东西:

for(int i = 1; i <= n; i ++) cin >> p[i];

我,草???????

憋笑改。过了第一个样例第一问,过了第二个样例第一问,挂了第三个样例第一问。

小调一下,发现匀减速运动的时候我算出 t 是负数,然后与 0\max 后过了第三个样例第一问,然后挂了第四个样例第一问,一看答案偏差值为 [0, 1]

发现是超速,于是加了个 eps。这里伏笔了,eps 开了 1e-8,似乎开太小了,赛后可能挂。

然后写第二问,写写,调调,终于写完了。这下知道自己的超级无敌若的码力。

这个时候离考试结束还有 1:20,最后目标很明确了,需要在这段时间内获得 D 尽量多的分数。

然后跑虚拟机,我靠我怎么没法共享剪贴板!慌了,叫了监考老师调,然后莫名其妙的好了(???

慌了,一直在浪费时间,linux 全过编和大样例了,回去看 C 拍子没挂,自信关掉拍子,回去写 D。

开 D,看不懂,看不懂,看懂了。码特殊性质 A 和 n \le 500,还剩十五分钟码完了,结果这两个 subtask 全挂了。十分钟没调出来。

于是我在最后 80 分钟获得了 0 分,憋笑。估分 100 + 100 + 100 + 0 = 300.

出考场,找教练拿回了手机,ba 启动。

Day 2

水 la。欸 A 题原来我在做取众数啊(恍然大悟。

B 和 tder 讨论了做法,完全没问题。C 上谷看了下,完全没问题。看起来应该不是很会死。

晚上回机房,凭印象写了个 A,洛谷 100pts。凭印象写了个 C,提交。

怎么只有 85pts????????

扔云斗测了一下,更是炸到了 75 pts. 检查一下,发现有一处多测没清空。

然后就产生了一道概率题。

发现了能 hack 掉疑似我的 C 题代码的数据充要条件:

假设单组数据内存在 T_1, T_2T_1T_2 前输入。用大写字母 N, A 代表 T_1 的数据,小写字母 n, a 代表 T_2 的数据。则应同时满足:

  1. A_{n + 1} = A_n
  2. _{i = 2} ^{n} [a_i = a_{i - 1}] a_i$。

求当 n \le 2000, V \le 30 时的错误率。

为什么是这个数据范围?因为我考场上用的这个数据范围写的拍。

然后去瞎调代码,发现直接 swap 了两个转移的顺序后直接都过了。怀疑自己忘了考场时是什么顺序转移的。

然后有了个这样的思考:如果算出上面的错误率很大,那说明我默写代码默错了。因为我两小时没拍出错。并且,我乱搞发现我将转移顺序对调后卡掉我的数据需要满足的条件会增加一个,并且增加的这个条件比较强,不刻意构造确实比较难卡(虽然还是能卡)。

于是相信自己没挂分。

B 懒得打了,不如继续回到 正睿 + duel 的美好时光。

和各路大佬闲聊,300 的分数被各路大佬击杀了,因为 300 确实是纯小丑分。

高二了,希望能打好最后的 noip。

Day 忘了多少

出分了。

没挂,但也就没挂了,D 题仍然保龄。