colgem's NOIP 2025 游记
前情提要
CSP-J & CSP-S 第一轮
2025.9.19 (Day -1)
拿了一天来准备第一轮,仍然很害怕第一轮爆炸进不了第二轮的风险,虽然说理性地看应该这种情况不会发生。
vp 了往年题目,做了 2022 S1 发现在 90 分钟完卷没检查情况下得到了
2025.9.20
考场:广州市铁一中学。来到了熟悉的考场门口,或许我过去的很多年里已经数次来到这里了,想必这就是最后一次了罢。我在考场门口拍下一张图片。这里正在下雨,天空是灰白色的,但并不使得这里是昏暗的,如果没有把我淋湿,那么想必这个雨一定是极好的罢。
上午打完 J 对民间答案,
中午去到附近一个酒店稍作休息,然后看看洛谷深入浅出,其实也看不进什么。看 HL 群,才知道可以在准考证上记录自己的答案,所以我下午 S 组就这样子记录了。
下午打完 S 。You have no eggs! 感觉今年 S 组第一轮题目风格大变了,不像往年有一种远古且数学的感觉,今年似乎有更多知识点之类的东西,居然考了线段树的查询要跨越几个子树这种东西,还有 huffman 树 如何构造,我考前甚至没看这个。
阅读程序感觉有二分之一没看懂,看得有点云里雾里。不管怎么样还是非常顺利地做完了,也没有出什么岔子。根据我记录的答案:
DCBDA DAADD DAACA
aab BBA
aaa BCB
baa BDD
ACBBC BCDAC
对了洛谷民间答案,
出分
J 组
CSP-J & CSP-S 第二轮
2025.10.30 (Day -2)
非常好,有可以练习的机会。太久没打了其实我感觉我是相当不自信的,似乎打个红题都很陌生,好在随手切几个题便很容易地可以找到感觉。
打了洛谷十月月赛 III ,切了几道题,同时重打线段树、最短路、并查集等一些很基础的板子,确实找到了一些感觉。我感觉如果不能保证切黄应该有爆 0 的风险,所以我决定把往年 J 的前三题和 S 的第一题都切掉。所以我在考虑正确性的目标下切掉了小木棍、决斗。
作用似乎是很大的,我感觉我能找到思维。
2025.10.31 (Day -1)
只剩一天了!发现了 JuRuoOier 大神有非常好的文章和视频,遂观看,获得了一些考前的注意事项以及头绪,非常好。
最后额外打了个负环和差分约束的板子,学会了,获得了 bfs 经验。
2025.11.1
06:52 起来了。赶去考场。我是 GD-J03262 and GD-S02962 ,欢迎查看我的考场 code (
08:16 到达考场。考场:广州大学附属中学。这地方我 2023 年也来过,旁边有博物馆,空气很好。大概是睡得充足了,感觉精神也不错的,并不犯困。
携带了一瓶矿泉水和一瓶 600 mL 可口可乐进入考场,撕掉了标签。
08:30 J 组开考。我相信 J 切两道题肯定是没问题的罢。
密码 #Shang3Shan4Ruo6Shui3 ,上善若水。输入密码解压,拿到题面一看显然看着是都不困难的。开始打之前我检查了 devcpp 的编译选项,写上 -std=c++14 -std=gnu++14 -O2 -Wall -Wextra 又尝试定义了一个全局 int y0; 发现不报错,瞬间感觉十分恐怖。(我去年 J T2 因为定义 y0 挂了
第一题拿个桶然后输出就完事了。然后一看第二题如此水 fc 样例发现不考虑时间复杂度都过了,可能这是我第一次用上 fc 。以及,成功地在各题代码留下了 colGem ,作为我所存在的记录(
此时离考试结束还有很久,大概是一个半小时。我基本没怎么再考虑后面分如何打,因为反正 J 目测是一等了。看看有什么可以看的,发现有一个 GF NOI Linux 虚拟机,有意思,启动之后把代码放进去 Code::Blocks 跑检查完毕,并没有什么因为环境变化而导致的奇异编译问题,跑一下样例仍然是对的,感觉不错。整理整理选手文件夹之类的,趴着睡一会,给下午 S 组留些精力避免犯困。
12:00 出考场。可乐喝了大概 freopen 没有错误,希望我文件名没写错,希望我选手文件夹都是对的。
去到 HL 群。什么,我第一题没判前导零!?哦原来保证至少存在一个非
想着中午睡一会,但几乎睡不了,吃了点东西,然后马上就接近了 S 组开考的时间。见到了 @akakal 散发着强者气息,膜拜。
中午去博物馆 肠道.clear() 了一下,这里我前年就参观过,所以去了只是 肠道.clear() 。
~14:20 大概到了考场,我又带了一瓶可乐和一瓶矿泉水,感到有点犯困,拿了一瓶白色的东方树叶,标有
14:30 S 开考。
密码 Ren5Jie4Di4Ling5% ,人杰地灵。这个机子贴的防偷窥的膜和上午 J 的还不一样,不能覆盖整个屏幕,有点难受的。解压,打开题干 .pdf ,有点心跳加速。
一看题目感觉显然已经非常不水了,比起 J ,有点恐怖的样子。T1 club, T2 road, T3 replace, T4 employ。看题第一题嗯应该贪心之类的吧,第二题图论吧,第三题字符串!?第四题不知道是啥。
首先开始尝试 T1。去年我 S T1 是接近一通胡乱尝试然后尝试出来答案是众数,所以我今年 S T1 就瞪眼样例和解释尝试能否看出什么东西。好吧,看样例解释似乎看不出来什么东西,所以我面向样例思考感觉是不是可以前缀和每个选最大的之类,因为它刚好能对上第一个样例。所以我就开始打。
然后开始打我发现代码很难打,因为要维护 3列 * n行 的数据,并且每一行可以单独分开来排序,又要维护它的原下标。所以我当时非常混沌,也不知道在干什么,反正甚至写了一个小时多调不出来前缀和,甚至想着要开个 long long 把三元组hash一下之类的。反正最后调了两个多小时才写出我这个假的想法。
然后跑第一个样例过了,后面的样例立即全都炸了,这个时候我意识到我非常危险。好恐怖,打了两个小时 T1 什么都没打出来!因为在不停地调代码,疑似这个行为有点太心流了所以眨眼一看时间都调没了。所以这个时候我当即决定往下看题,看 T2 10min 左右发现 T2 疑似要 MST ,但我不知道怎么处理乡镇改造(其实是没读明白题意)同时前两天没打过 MST 板子所以我觉得我本题可能拿不到多少分,又立即往下跳。接着看 T3 replace,题意似乎是简单的,我觉得我非常可以写一个
此时大概还剩 1h20min ,目前期望得分
但是好急,我感觉我仿佛束手无策了。我想起我考前写题解的感觉,尝试复现自己冷静的思维,我用了个 notepad.exe 和自己对话并记录思路。
开始尝试重新考虑 T1 。我考虑了题目给的三种特殊情况部分分,发现都做出来加上 T3 10pts 我可以拿到 30pts,但是这目测也没有省三。所以我考虑 T1 特殊性质给到的提示,手推一下,发现对于 特殊性质 C 的
随后跑了 NOI Linux 虚拟机发现没有 CE 问题,检查了基本问题后就放那了。并且顺手写了个给 T2 和 T4 全输出 0\n 的 code 。
18:30 出考场。出来天都黑了,摘下眼镜又感觉非常糊。
还好还好,我没爆真是太好了。意识到做题如果没思路应该从部分分出发,并且应该要做理性逻辑推理,严格地不能瞎搞浪费时间,经验 +1 了。S 组期望得分 freopen 没有错误,希望我文件名没写错,希望我选手文件夹都是对的。
出来看到 @akakal ,告诉我他 T1 好像是半个小时切了,太强了 %%% 。然后说 T2 好像有点困难之类的后面忘了。可能是树学大神。
然后回家。我这样切 T1 的经历真的是。
出分
::cute-table{tuack}
| 准考证号 | number | seat | xor | polygon | 总成绩 |
|---|---|---|---|---|---|
| GD-J03262 | 100 | 100 | 60 | 64 | 324 |
::cute-table{tuack}
| 准考证号 | club | road | replace | employ | 总成绩 |
|---|---|---|---|---|---|
| GD-S02962 | 100 | 0 | 0 | 4 | 104 |
J 组
S 组
第二轮,仍然是 J 组一等,S 组二等。
NOIP
NOIP 2025
这是我最后一次 NOIP ,严格意义上的最后一次。
2025.11.26 (Day -3)
正在以切掉往年 NOIP T1 T2 T3 为目标复习,或者做点 S 的前几题。经常地,看着题目在草稿纸上写写写以为自己可以切了,然后一打发现处处爆,还是老实看题解了。
紧张。感觉看着前几年题目的题解尚且勉强做出来题目,考场上不知道要如何。
想想我什么不熟,基础不熟比如 dp 字符串 图连通性,好罢不熟的可挺多的。看上去至少要打个板子,好在场上不会因为缺结论的一步而导致复杂度多个几次方。
2025.11.27 (Day -2)
感觉什么都调不出来,这显然是不行的!!而且我还有一堆板子没打。我决定开始严肃学习题解模式。
下午想到我可以给自己准备 NOIP 的过程录屏,所以我就开着录屏录了几个小时。晚上一看只产生了几百 MB 的贡献,非常可以接受,于是继续录并在睡觉前以 document.querySelector('video').playbackRate=16 回顾 (欣赏) 自己的准备过程。特别是看 16 倍速的 coding / 打字过程还是很有意思的。
最终今天写了去年 S T2,并真正理解了如何写二分,以及测试了一下几种输入输出的效率如何,然后发现解绑并取消同步的 cin 和 cout 是最快的,如果不快读。到底是为什么以前一直认为 scanf 和 printf 是最快的。
2025.11.28 (Day -1)
汩余若将不及兮,恐年岁之不吾与。就感觉现在真是万分紧急的时刻,只感到时间是完全不够用的,只能想着再快点多看点。
上午我终于切了昨天的题。然后到了中午,我开始过模板的 list:线段树 分块 并查集 Trie 拓扑排序 MST 最短路 负环 差分约束 点双 边双 SCC LCA 缩点 树剖 树的直径 埃氏筛 gcd lucas KMP 等。树状数组和 ST 表我仍然不会,都到这个时候了我也不想看了,反正我会线段树,反正都能维护。什么常数不常数的,不管了,反正我渐进复杂度一样(
然后下午还去 NOI 官网看了省份新闻,发现 GD 终于是发了选手注意事项,进去一看发现竟然显示着:
请一定不要在代码及代码注释里加入与考试无关的内容,包括:歌词、诗词、游记、感言等。
然后还发现其它省没有这条。GD 怎么这样
最后又把去年 NOIP T1 切了,然后去年 T2 看了半天才看懂它是在约束条件上进行考虑的而不是单个变量,虽然没切但是经验++。最近做这样的切题,感觉还是非常有用的,有很多的经验与代码细节可以在做题过程中找到。
睡前一点时间已然什么都看不进去了。
晚上好紧张,辗转反侧睡不着。只能说人类还是害怕一切的未知性。
2025.11.29
这个日子还是降临了。
6:31 起来了。感觉睡少了,且感到有点寒冷。
7:24 路上看到广州塔,所以,活力大湾区,魅力新广州
7:40 到达考场。这个地方仍然是如此的美丽。
过了一会,高一的三位同学也来了,我等了一会跟随他们的背影进去了。悄摸跟着走他们后面绕来绕去令我有点不自信,我也不知道我到底是在哪个考场,走一半折回来问问工作人员,然后确定了实际上还是在我考 CSP-S 的那栋楼,于是走过去。到了那里后发现我们学校 NOIP 的五人其实都在同一个考场,所以说刚刚其实可以直接跟随的。约于 7:50 到达考场门口。看上去里面的机子机况还不错。
这个时候 akakal 还没来。仍然是遵循上一次考试的经验,我决定 肠道.clear() ,并发现这一层楼厕所满了,不过往下走一层厕所便没人了,于是进去完成这一考前重要的 todo 。最后考前还借给了别人我带的抽纸进行 肠道.clear() ,我认为我 rp++; 了(
在进考场之前,我仍然是饮用了约
8:31 进入考场。迟了一点点,不过感觉问题不大。我旁边两个位置坐的就是 akakal 。
刚坐下,随即感觉喝的过量的茶多酚要发力了,加上紧张就是心跳有点快。打开核心出装 notepad.exe ,谨慎地输入 !NOIP@Nov29,2025:dream ,然后解压出了 day 1 。等等为什么是 day 1 ,不管了。比起上次 CSP 我是在桌面上放代码的,我这次是直接利用解压的选手文件夹,然后创建快捷方式到桌面。
非常好,映入眼帘的是文件夹 candy query sale tree 还有 day1.pdf ,读题!
第一题,糖果店。第一眼看上去这是塞了个很常规的贪心,目测不会很困难。
第二题,清仓甩卖。哦居然还是和 T1 构成连续剧的吗,有意思。还有模
第三题,树的价值。什么,居然有 mex ,之前洛谷月赛好像见过一下这个东西。看了看,看上去不知道如何把 mex 的信息从子节点 push_up 到父节点上面,感觉这是很困难的,没什么想法。
第四题,序列询问。果然今年 T4 还是和往年差不多,放了一个一看就很数据结构题的数据结构题,看上去暴力模拟仍然是很简单,待会打个暴力。如果可以的话,看看能不能根据部分分写出什么优化。
读完题回来看 T1 。再看了一遍像个背包问题,考前没看,不过
在纸上模拟题意,并考察样例,想到可以先找到所有
最后到了大约 9:30 ,我想到我可以每次取 购买价格/购买数量,每次取性价比最好的(权重最小的),这里采取优先队列维护当前的最小的即可。对于每次取,如果取的是
直觉看上去,这个做法的平均时间复杂度是
这样做完之后,开始 fc 。直接 fc 样例 7 ,发现直接正确地输出
好了现在离比赛结束还剩大约 2h10min ,按 GD 去年
然后过了十几分钟写出了一个暴力,样例 1 过了,让我来 fc 一下,一看发现样例 2 输出了一堆 0 。这很奇异,我调了一会没调出来,此时大约是 11:40 ,没办法,只剩 1h20min 了,只能赶紧开后面的题了,润。
看 T3 仍然没有任何想法,感觉做 T3 也并没有什么有前途的做法,所以我直接开 T4 。
T4 题意也就很简洁,这种东西一看就是最好打暴力的了。但,最后要我模 unsigned long long ,是 UB ,以前没有写自然溢出的经验,感觉有点古怪,不知道要不要开 __int128 ,希望没什么问题。
随即我 notepad.exe 梳理了一下思路,想如何写这个暴力,然后顺利地写出了一个
还剩大概 40min ,T3 没有半点想法,那我只能回头看 T1 和 T2 了。我决定回去再 hack 一下 T1 ,修一下那让我心神不安的算法正确性问题,修掉第六个样例 WA 的问题。然后又回去看了十几分钟,发现仍然想不到有什么问题,反复看感觉很对,又想不到任何 hack 。所以我只能做的最后的工作就是打开虚拟机,把 T1 的 code 放进 Code::Blocks 里面跑一下看看也没有环境变化导致的编译问题等。看了并没有什么问题,那么继续,写了个 T3 全输出
出来有种平淡的荒谬感,就感觉它似乎就这么结束了,这么长的一段 OI 旅程它确实结束了。
讨论题目情况。怎么感觉所有人都上来半个小时就秒了 T1 然后瞪眼后面的,那这么看我 T1 还是写太久了。HL 群讨论时我知道了我的贪心就是假的,然后感觉后面写不了多少分,让我有点绝望。但是同众人一起面对 NOI plus
下午去了一些地方,所以回到家是晚上。复现了代码,完美地复现了 T1 在第六个样例少
所以,目前的估计是
出分 (2025.12.6)
::cute-table{tuack}
| 准考证号 | candy | sale | tree | query | 总成绩 |
|---|---|---|---|---|---|
| GD-0622 | 100 | 0 | 0 | 20 | 120 |
最终 NOIP 取得了
事实上比想象的高一点,意似良,看上去一等是希望渺茫了,但希望有二等。
出等 (2025.12.13)
终于出等了。GD 的一等线
看上去大概拿不到六级钩?所以我大抵是至此,到最终,也是仍然没有蓝钩的。在 NOIP 中取得六级还是比在 CSP-S 中取得六级困难太多了。
不过还挺好,至少我有二等了。
追忆
我是在初一开始 OI 的。
更具体地来说,我在初一第一次参加 CSP-J 和 CSP-S 。只是知道有这样一个赛事,且在前一年的六年级已经学会 cpp ,跟随家长的引领来参加这样的赛事罢了。那么,在这样毫无头绪的情况下,不出所料地并没有过第一轮。
在最开始的这么几年里,我都是没有方向地自学的,甚至我注册洛谷还是在 2022.8.15 ,而开始真正使用洛谷还是在高一。在此之前我都是使用 NOI 官方提供的 oj.noi.cn ,不过这个 oj 现在已经没了。
于是到了初三,在对往年第一轮题目的 vp 下,我积累了足够的经验,并成功通过第一轮进入了 S 组第二轮。此时由于并没有足够的基础知识所以 J 组反而没过第一轮。进了 S 第二轮,开幕 P8817 [CSP-S 2022] 假期计划 ,这题拿点分还是简单的,但我只记得我当时在考场上基本上就是调这题了,主要还是在写 dfs 尝试处理出单源最短路,不过这个我疑似也没写出,我还记得我考场上用的存图方式是 vector<int> to[maxn]; ,这我沿用至今。
然后不出所料那一年也是爆 0 了。
::cute-table{tuack}
| 准考证号 | holiday | game | galaxy | transmit | 总成绩 |
|---|---|---|---|---|---|
| GD-S00304 | 0 | 0 | 0 | 0 | 0 |
随后进入高中,打上了广州的市联赛。去二中参加比赛的体验感觉非常愉悦,我就喜欢这样机房的味道与 OI 比赛的感觉,虽然也没打多少分,但这样的体验真的是极好的。我记得在校园中,阳光透过绿树散下斑点状的叶影,身旁便是绿水,且空气是如此的沁人心脾,在露水的味道中尚带有一丝机房的气味得以令人闻到。这也是学术的味道。
我在高一打了 CSP-S 2023 。顺利地过了第一轮,但我当时仍然太弱了,居然不会写第一题 P9752 [CSP-S 2023] 密码锁 ,主要是当时甚至不会用 STL ,所以不会写去重,然后考场上应该是尝试了 hash 也没 hash 明白。
::cute-table{tuack}
| 准考证号 | lock | game | struct | tree | 总成绩 |
|---|---|---|---|---|---|
| GD-S01048 | 30 | 0 | 0 | 0 | 30 |
当年的三等线是
然后到了夹在高一下和高二上之间的那个暑假,数学夏令营恰好在我们学校举办,都是数竞的东西,不过我感觉有点兴趣所以去了。到了虽然基本听不懂,但是这大大开拓了我的视野,使其不再局限于文化课的那一些东西,有一种充满了力量的感觉。数竞夏令营后还有一个化学和生物竞赛的夏令营,我又去生物看了两眼,但生物营不能看手机,于是我感到无聊就在闲暇时间翻看自己的东西,发现了一个先前打印的 2023 年的 NOI 大纲,此时,2024.8,我才发现这上面完全告诉了我应该学习什么内容。于是我连夜从生物营跑路,然后回去 OI ,然后一周基本完成了入门组的东西,并了解了很多提高组的内容,并开始经常使用洛谷,算是知道了 OI 如何入门学习,这是一个转折点。
到了 2024.9 ,带着这些知识我来到 CSP-J / CSP-S 2024 第一轮,就是比之前好了不少,得到了 J 组
::cute-table{tuack}
| 准考证号 | poker | explore | sticks | chain | 总成绩 |
|---|---|---|---|---|---|
| GD-J02932 | 100 | 0 | 0 | 0 | 100 |
::cute-table{tuack}
| 准考证号 | duel | detect | color | arena | 总成绩 |
|---|---|---|---|---|---|
| GD-S02811 | 100 | 0 | 0 | 0 | 100 |
J 组是 T2 挂分了,S 组 T1 一通搞发现答案是众数的出现次数。其实都不算特别稳。但是我接下来就准备 NOIP 2024 了,并期望能省一。
| ::cute-table{tuack} | 准考证号 | edit | assign | traverse | query | 总成绩 |
|---|---|---|---|---|---|---|
| GD-0466 | 30 | 15 | 4 | 0 | 49 |
当时出考场我以为要爆零了,这也说明我当时也并没有什么注意部分分的意识,实际上还是吃到了些许特殊性质。好在当年省三线
高二还如此,理论上应该没有更多 OI 了。
但我在高三仍然带着“参加一下绝对不劣于不参加”的想法去参加了 2025 年的比赛。2025.8.3 又是梦熊恰好在我们学校开始举行集训,那一天恰好是高三开学前一天,我就去参加了一天,复习了一个线段树,并由于开场几十分钟没打出某一道题被授课的金牌大佬抽查地询问:“呃,问这个, c o l g e m 同学,为什么还没写出来这道题”(小白逛公园,维护区间的最大子段和)(还是一个字母一个字母读的),就很有意思。那道题我当时也是不会,因为这种信息的维护我根本没有头绪,但感觉又确实有人听一遍板子就能会解这个是不是太聪明了()
然后,剩下的东西,便是上面的游记所记载的了。
总而言之,OI 确实在我的人生中留下了浓厚的一笔。我确实很喜欢 OI 所带给我的这一种感觉,这到底是什么感觉呢,很难言说的,这确实是很难言说的。
:::epigraph[——《追忆》] 曾经的日子无法重来,我只不过是一个过客。但我仍然渴望在每一次追忆之旅中留下闲暇时间,在一个场景前驻足,在岁月的朦胧里瞭望过去的自己,感受尽可能多的甜蜜。美好的时光曾流过我的身体,我便心满意足。 :::
不论如何,我的 OI 旅程都已经结束了,这一结束是彻底的。那么,就于此,为我的 OI 生涯画上一个完整的句号。