2025 CSP-J 游记

· · 生活·游记

事先声明:本人 BJQHF 初一蒟蒻,此前仅有一次CSP-J。

初赛

赛前

题外话:BJ初赛举办于9月20日,与我的生日重叠,要一个生日祝福不过分吧。(QWQ)

说实话,在最近的一年内基本忙于升学,(小升初)所以信奥复习自认为并不到位。

在首师附举办,从我家走路大概五分钟到。

赛中

开题后发现选择题难度并无明显提升,但自认为阅读与完形变难了。

快速做完了大部分题目,后几题想了一会,大致读懂题目意思后也在几分钟内完成。

睡觉~~

赛后

课外班教练中午在群里发了答案。

不看还好,一看彻底红温。(选择题前五错三,阅读题理解错误......)

81分,虽然不高,但也够用了。

复赛

Day -7

社团模拟赛,但上午和数竞冲突,思前想后决定退掉 J 组模拟赛。(事后发现这是个错误的决定

下午 S 组模拟赛。

T1 数学题,公式推导错误。

T2 结论题,想到但忽略部分细节。

T3 树上神秘题,暴力。

T4 疑似数据结构维护数据结构?

总分:40+80+20+0=140

Day -3

被黄题卡了 53min,虽然状态不在线,但码力还是可以的。

Day -1

复习往年知识点,发现大部分都会。

睡前发现没有身份证,找了半天发现在我妈妈的外套口袋里。(雾)

Day 1

早上精神状态不错,不过疑似被运动鞋卡常。(doge)

在人大附中考试。所以吃完早饭和爸爸直接驱车前往。路上想着一定要做出 T3,不然就无一等奖了。

到了考场。嗯?崭新的 NOI Linux 2.0 虚拟机,必须努力!

先开 T1,发现异常简单,只需提取出字符串内的数字,然后将所有数字 排序 后倒序输出。遂快速写完,然后自测了几个手搓样例和官方样例,就去开 T2 了。(埋下伏笔)

再开 T2,本来想要通过 模拟(因为数据范围很小),后来觉得可以直接通过排名 p 对 总行数 n 的取模值来确定 成绩的行数 x

具体的:

p \equiv 0 (\bmod n) 时,x=p \div n

上式不成立时, x= \lfloor p \div n \rfloor +1

有了行,推导列就十分简单。故不再讲解。但在考场上我推这一段用了整整 20 min,以至于我在通过大样例后松了一口气。

此时比赛已经过去了 40 min。

看到 T3 时我有点慌了,位运算一般不会作为知识点单独出现。而这个题面中又没有 某种神秘的数据结构 或是 可以看出的算法,那就有很大概率是一道带有结论性质的 动态规划

然而 动态规划 一直属于我不太擅长的部分,于是我就先放下 T3 ,去写 T4。

但问题在于,T4 好像还是 动态规划 ,不过看起来比 T3 好做。于是我就先推了推 T4 的性质。但没有发现有效的 dp 做法。

顺便提一嘴,我在考试中想到了将数组 排序 ,但却没有继续往后思考,现在看来非常可惜,如果我能做出正解,一等奖就稳了。

想不出正解,我就开始思考通过 暴力 和 特殊性质 拿分。发现 dfs 能直接通过 n \le 20 的情况( n 为小棒数量),于是就先花近 40min 写了出来。

然后发现当 max^n_{i=1} a_i \le 1 时( a_i 为第 i 根小棒的长度),任意取出数量 \ge 3 的任意位置的小棒都是满足条件的。所以可以直接计算 \sum^n_{i=3 } C^i_n

不过我的代码计算 C_n^i 的复杂度和正确率 不可保证

但我实在想不出更好的写法,只能硬着头皮把这奇妙,又臭又长的 T4 代码写完。

这时候已经开赛 2h 了。

再回头看了一遍 T3 , 想到了类似 分治 的一种 贪心 写法:

可以把数列做 前缀异或后缀异或 ,然后遍历分割点。

只要能切开就切开,以此类推......

但无法保证 贪心 结果是最优解,且过程极为繁琐,一定不是正解。

所以我在比赛中放弃了这种思路,决定根据 特殊性质 A B 拿30分。

最后的最后,无聊实验 T1。

突然发现,我的代码输出了形如 "er00" 的东西,吓得我一激灵,后来发现是输出的数组名写错了。

CCF什么样例?

赛后

发现全员 AK。(除了我)

有些老师估计分数线会跳上 300

预估得分 :100+100+30+ \lbrack 44,64 \rbrack=\lbrack 274,294 \rbrack

愿 OI 之启程 宛若繁星般璀璨!

愿 OI 之回忆 宛若夏花般绚烂!

明年加油,祝 AFO 的选手也能过上自己想过的人生!