CSP-S 2024 游记
Day -100 暑假集训
暑假集训,前几天讲的是算法,后来就开始打校内模拟赛,这里就不一一赘述了。那时的模拟赛还很简单。
记得第一天 T1 数据有问题导致全员 89pts。
还记得我曾经 AK 过一场,之后使劲想去 hack @shentianyi 的暴力算法但是还是给他 n 方过十万了。
我最想提的,是 8 月 8 日的那次。
那次比赛由 @ShwStone 主持,一共有 6 道对于当时的我们算是很难的题目。
我当时还死板的想,“学习 OI,必须打出每道题目的正解”,死磕 T2 到 T6 ,全做不出来。
这天晚上,失落的我独自漫游在家中的廊道,甚至有 AFO 的打算。我走进了粉色调的卧室,但这次它给我带来的并不是温馨,而是孤寂。
我做了一个梦,梦见我在和 @uuku 一起在机房集训,突然间,我们穿越到了《魔禁》的常盘台郊区,并在海滩上面遇到了教化后温和的一方通行(什么东西),之后发生了什么也记不清楚了,只记得,最终在海滨山洞门口,一方通行让我做一道 DP 题(????????)
~~然后就有了 [HGOJ1504/XOJ5943/洛谷U480242](https://xoj.red/problem/5943) 这题~~
醒来之后,我想,我如此热爱 OI,难道只因为一次失利而就此放弃吗?
不,我要做坚强的米塞莉娜,和我最爱的 OI 一起走下去。
就这样,我坚持下了一整个暑假,并且学会了“打部分分”和“骗分”这两个十分实用的技巧。
### 初赛
赛前也没有什么能说的。
赛时程序填空自己模拟了好几遍,从 $3$ 个 A 改成 $4$ 个,又改成 $5$ 个,我想这回肯定错了不少。
结果赛后一出答案还真是 $5$ 个 A,有幸见证历史。
初赛 $85.5$pts。
### 复赛赛前
打比赛。在 XOJ 上写题解。周而复始。
$10$ 月初,OI 和考试时间撞了,但是这不能熄灭我对 OI 的热情,我在考试间隙 $15$ 分钟打了 T1,T4没时间看交了个 cout 一个字符串,发明了“在第一行读取到 The”的梗。
同机房的 @lizihan250 应该还记得同一天的“在第二行读取到一个整数”。
运动会三天在钱江机房,那边开的是黑名单,正当我们认为能玩 generals 而欢呼雀跃时,第一天中午 @ShenTianYi_ 中午出去两个多小时没回来,generals 没退出被老师看见,于是可怜的 generals 又被 ban 了。。。
也正是那天,我第一次独立 AC 紫题。
考前几天,我打了不少前几年真题,直到 $10$ 月 $26$ 日,那天上午我甚至感觉自己完全不会 $2021$ 年的 T3,我愈发紧张。
中午理性分析了一下,发现我并不是不会做这题,而是情绪太紧张,想不到正解。
因此,我认为当下应该做的不是继续做题,而是放松情绪,我走出机房打了一首《I AK IOI》(实际是TECHNOPOLIS 2085)。
马上就要出发了。
### 赛时
14:30. 打开题目,一看 T1,嗯?怎么会有这么水的题?
于是我不假思索,排序一遍,找到每个数字出现的次数,再遍历找出大小相邻的两个数出现的次数,找出较小的那个减掉它,输出结果。(注意这个算法有问题)小样例全过,也不想看大样例了。这时过去了 $3min$。
14:33. 看 T2。暴力分很难打。
14:33. 看 T4。暴力分很难打。
14:33. 看 T3。这个 $20$ 分不是有手就行?
直接利用二进制枚举所有可能的状态。$20$ 分到手。
14:44. $14$ 分钟过去,T3 的 $20$pts 和自以为的 T1 的 $100$pts 都到手了。打算开T2,这时我突然想起了些什么,打开 T1 跑了下最大的样例,跑出了个 `92994`。坏了,T1 挂了。
仔细分析了一下,我的算法有个很明显的问题,例如最简单的数据就是 `1 1 3 5 5 5`,离散化排序计数后是 `2 1 3`,按照我的算法会减掉两个 $1$,输出 `4`。正确答案应该为 `3`。问题出在我的代码相当于“每个怪物只能攻打小于自己攻击值中**防御值最大的那个怪物**”缩小了可以攻击的范围。
再调了 $20$ 分钟,大样例跑出了正确答案 `36247`。~~我是【数据删除】~~
15:03. 开 T2。一眼看出这个物理题代码量不会小。
大致思路:(因为这不是题解,写得粗略点)第一问先用物理公式 判断每辆车在哪个区间段会超速,再用前缀和判断区间内是否有测速点;第二问求最多去掉几个探测器,等效于求最少保留几个探测器,考虑贪心。
15:40 这个代码量堪比大%你啊……还有我咋莫名其妙输出了一堆 `0 m`,调试了一下,超速区间为 `100012 ~ 100012`,`100016 ~ 100016`,`100020 ~ 100020` ???
16:17 调了大半天。还是 `100012`。
16:29 ~~哦原来是把 $10^6$ 的数组开成 $10^5$ 了,那没事了。~~
比赛还剩两小时。我面前有两种选择:T3 或者T4。
我选择了 T4。事实证明,我选择了错误的选择。(哭)
T4 开了一个二叉树,先建树,再依次处理各个叶子节点,再向上跳,第 $n$ 局由叶子节点的第 $n-1$ 级祖先表示,思路应该没太大问题,但是这个值转移是咋调都调不好。
18:11 终于!样例终于跑出了——`14 19 13 1`。啊啊啊啊啊啊啊~
离比赛结束还有 $20$ 分钟左右,在最后打了个 T3 的骗分,检查了遍文操,避免发生类似 `//freopen` 的惨剧。
保存代码。记录代码长度。
预估分数:$100 + 100 + 20 + 0 = 220$pts。
### 赛后
在洛谷发了个[帖子](https://www.luogu.com.cn/discuss/976245),估计这回难度是橙绿蓝黑。
结果真是。
早知道 T4 是个黑题赛时就去调 T3 了。@EVENe 一个 $600$ 多 B 的代码就 A 掉了,%%%。
同机房的 @lizihan250 说他 T1 T2 T3 都做出来了。%%%。
同机房的 @zent T4 民间数据有分。%%%。
以及 @Naganorhara_Yoimiya 说她 T1 可能因为一个细节挂了。默哀。
## 我该怎么评价这次比赛呢?说来这时我(现在高三)第一次参加 OI 比赛,也很可能是最后一次。无论结果如何,只要努力了,那就足矣。
## 无论我最终结果是多少分,参与了 CSP-S 2024,不愧对自己对 OI 的热爱,高中三年就不会留下遗憾了。
## 再见,CSP-S 2024。你好,未来。