CSP 2024 游寄

wmrqwq

2024-10-27 14:12:05

Life & Travel

坐标 ZJ。

初赛

day [-14,-1]:

做了点初赛题,发现唐的题是真唐,水的题是真水,怎么回事呢。

day 1:

上午打普及组。

???

拿到了题目发现怎么今年普及组题目这么水,怎么回事呢。

但是格雷码忘记咋弄了,喜提 -2。

1h 左右做完了。

赛后发现阅读程序 T3 题目读错了,喜提 -5,最终 93.

下午打提高组。

首先花了 15min 左右做完了选择题。

又花了 30min 左右做完了阅读程序第一题。

然后发现阅读程序 T2 只能读懂一半,完善程序 T3 是一个类似于哈希的东西,但是没读懂在干啥。

阅读程序花了 35min 左右做完了。

阅读程序做出来 C 比较多,索性全蒙 C,结果最终只扣了 6 分。

最终得分 73.5,怎么回事呢。

复赛

day [-14,-3]:

模拟赛。

day -2:

vp 了 SCP2023 S 模拟赛

开场发现不会 A,索性写了个记忆化加上一个数据分治,过了全部 8 个样例。

看了 B,感觉是一个典题,但是由于我树形 dp 实在太烂了,就没写,打了爆搜跑路了。

看了 C,观察到样例猜测操作次数会很少,于是打了个 O(n^4) 的操作 \le 3 次的做法,大样例全过了。

看了 D,感觉会一点性质了,但是没怎么写,就开摆了。

估分 100 + 8 + 60 + 2

实际得分 85 + 8 + 80 + 0

day -1:

看了 SCP2022-S 模拟赛的 A 题,写了一发,过了。

比较有趣的是,这题也同样考察了数学,而 CSP-S 2024 T2 也同样有数学。

晚上写了 CSP2022-S 的 A 题,写了一发,过了,睡觉!

csp2024 RP++!

day 1:

上午普及组。

1h 切掉了前面三题并 hack 了一下,没 hack 成功。

看到 D 想到了个建个图跑记搜的 60pts 做法,场上觉得自己 30min 就能写完,于是就开写了。

差不多 30min 左右,写完了,但是没过样例 1

仔细观察了一下发现题目读错了,不能选长度为 1 的部分。

于是改了一下就过样例 1 了,但是没过样例 2???

怎么回事呢。

调了 1h+ 之后,我还没找到挂的地方,急了!!!

过了一会儿,发现是我的滚动读入出锅了。 /fn /fn /fn

原因是多测没清空。 /qiang

改完之后,终于过了样例 2,但是没过样例 3???

此时还有不到 1h。

极限补救了一下,发现还是多测没清空。 /fn /fn /fn

过了能跑的大样例。

顺便卡了卡常数,最后 100 + 100 + 100 + 60 遗憾离场。

最后得分 100 + 100 + 100 + 60

下午提高组。

看了看题目名称,duel???CCF 这么紧跟时事的吗?然而开完题发现并不是这样。

开局先花 5min 看了 4 个题。

首先开 T1,差不多 15min 切了。

然后看了 T2,感觉题面太长了就先去看短题面的 T3 了。

看完 T3,发现 O(n^3) dp 是简单的,快写完 O(n^3) dp 又会了一个 O(n^2) 的 dp,大约 35min 写完了 50pts。

然后回去看 T2,发现其实读懂题目还是很简单的,一开始以为 T2 有点困难就先写了一个 20pts 的特殊性质 A。

写完之后发现会 T2 了,于是就写了一发,大概过了 50min 左右过了大样例,但是最慢的点跑了 1.8s,算了,不管了。

接下来花了 25min 补掉了 T3 的 a_i \le 10 的 15pts。

此时还有 1.5h,于是我看了一眼 T4 的题面,发现 40pts 是简单的,而 D 题的 40pts 大于 C 题剩下的 35pts,于是就去写 D 了,但是我写到一半,发现我的做法似乎假了,于是把我原来的代码删了写了个 12pts 的暴力。

打完暴力只剩下 3min 了,索性玩扫雷。

最后 100 + 100 + 65 + 12 遗憾离场。

但是,出了考场后,我仔细思考了一下,发现我赛时那个 40pts 做法是正确的,但是没仔细想就清空了。。。

啊啊啊啊啊!我是【】!!!

最终得分 100 + 100 + 35 + 12

其实,终究还是策略有问题吧。

但是,这是我不能去怪罪的东西。

毕竟,菜就是菜,强就是强。

机房里人均 372+,那为啥就我打的这么低呢?

终究还是自己的问题。

后记

  1. 赛后重新写了一发 B 题代码在洛谷上最慢的点只跑了小于 1s,考场上的机子实在是太拉了!!1

  2. 发现考场上写的 D 时间复杂度是 O(n \log^2 n) 的, /oh /oh /oh,也就是说,如果我场上没把那发代码清空,那么我的实际得分为 [68,76]。 /fn /fn /fn