CSP-J/S2025 游记

· · 生活·游记

来自福建省 fqyz 的蒟蒻。

本文很多废话,重点在后面。

Day -INF/Year -1

本来在学 Treap,发现本人太废了学不会,教练喜茶让我学重链剖分,看一眼书后就再也没看了。

Day -INF/Month -3

被拉去长乐区线下集训了,做得很差, 最好的只拿过第三,最差拿过 0pts。

Day -INF/Month -2

步入正轨,开始全身心准备。教练说今年小学生不能报名,第一轮竞争会更激烈?6,原来人数少了竞争更激烈。还让我们要准备第一轮,才不听。翻开某本书,看到了熟悉的字眼——重链剖分,照着书敲个代码,过了 3 道《模板题》。后来长乐一中的线上模拟赛中,由于 T2 基本是纯重链剖分模板,而似乎只有我一人学了,所以分数比所有学长都高,只得了第一。

Day -31/Month -1

被喜茶拉近机房集训,国庆成功获得了 2 天假期。集训的题都是高中学长们选的,最喜欢金钩 wukaichen888 学长选的题,相比于别的学长选的,我分数最低,排名最高。

Day -24

用线段树套动态开点权值线段树过了本人通过为数不多的紫题 Dynamic Rankings。

Day -24

补作业。

Day -21

看蓝书,学了 Treap,写了个指针实现的模板类,过了 AcWing 的《模板题》。

Day -20

看 oi-wiki,学了替罪羊树,代码长得依托(可能是我太蒟了,好像都说替罪羊树的优势是码量小),和 Treap 的代码对拍了一下发现完全正确。本蒟蒻竟然学会了两种平衡 bst,不可思议。

Day -9

看蓝书,学了四边形不等式优化动态规划,过了 IOI 邮局加强版,当然由于写代码时有点 bug,所以调死了。截图发给喜茶,喜茶发了两个 /qiang。

Day -4

由于 fqyz 的运动会正好在 CSP-J/S2025 的前三天,所以我和班里几个 dalao 和一个 dalao 学弟都为请假准备着,(据不完全统计,)以下是这几个 dalao 的你谷用户:

redfull66(此为最强 dalao,ljm,同班),BNCDBD(此为七年级 dalao 学弟,hcj),linhanqi(同班,也是 dalao)

很有意思的是由于也临近半期考,所以 fqyz 对我们八年级在晚自习展开了副科模拟考,redfull66 大佬本身就没有晚自习不用考,我在这天晚上还参加了历史模拟考 QAQ,由于比较权威所以后面两天直接不参加考试了,BNCDBD 是学弟所以没有模拟考参不参加晚自习无所谓,至于 linhanqi...不够权威。

(实际上原本只有我和 hcj 学弟请假成功了,因为班主任说一个班请假人数过多会扣分,至于 redfull66 是怎么请假成功的:)

(然后我们班请假了 5 人似乎,真·请假人数过多会扣分。)

Day -3

本以为运动会请假可以好好睡觉了,结果喜茶叫我们 7:45 就要到机房打模拟赛(只比平常多睡了快一个小时,仍然困死了。

下午自由写题,我们去长乐一中 YbtOJ 上面写模拟赛,直接开了两场,最终某场的结果是如此:

结合 Day -4 的图,你或许能知道 redfull66 何位也,也或许知道其实力多强了。

晚上我们都懒得去机房。我自己随便选题准备了两场模拟赛供后一天打,题目基本是自己选的,当然为了公平没有认真看题面,某场的第一题是本蒟蒻让 BNCDBD 学弟选的大模拟 ~打磨你~,另一场主要是历年的真题,最后一题是 wukaichen888 学长贡献的 NOIP2018 某数学题。

Day -2

早上又是 早起 打喜茶的模拟赛。

下午做了我的某场模拟赛,T1 打磨你我们都很快切出来了,T2 题目是【模板】线段树合并,我一看题——?这用重链剖分一下再差分处理不久解决了吗,也写出来了——结果发现是紫题,redfull66 竟然没有做出来。我原本把绿题 T3 设成了 300 分,结果他人都去做 T3 了,当我写出 T2 时发现自己竟是最后一名,没意思的是本蒟蒻切 T3 用的时间竟然比 T2 多。剩余时间也不多了,想拿紫题 T4 的部分分发现一分都不会拿,还是太蒟了。

晚上还是本蒟蒻自己团队的模拟赛,linhanqi 由于晚自习所以不能参加 ,太不够权威了。傍晚 6:00 就开始,所以我们三个迅速吃完饭就回到机房了。

T1 本蒟蒻首 AC,redfull66 其次。T2 选的是 S2021 的 T3,众所周知,S2021 的难度是绿蓝绿紫。令人不愉悦的是,(与后文想照应,)redfull66 1h 内就切了 T2,而我用了 1.75h QAQ T3 一看——不会,下一题。T4 是 NOIP2021 的题目[数列],对于省选-的题目,当然直接写一个暴力再用记忆化优化一下。下一题,也是 wkc 学长选的最后一题,填数游戏——前四个测试点不是送的吗?打表是最朴素的算法。

最终结果:

hahahahahahahahahahahahahahahahahahaha 我一点没疯,我一点没疯,同年段的 redfull66 都能场切 NOIP 的紫题了,我是不是要 AFO 了?对于这把紫题当饭吃的 dalao,我亦没必要与其争何锋了。hahahahaha 同时这场模拟赛中 BNCDBD 学弟的分数也为其 CSP-S 的分数埋下伏笔。

Day -1

没啥好说的,喜茶让我们在考前复习一下模板,但似乎并没有什么用,因为 CSP-S 没有考到什么我们不会的模板。然而或许应该叫 hyx 学长复习才有意义(为后文埋下伏笔)早上写了四五道模板题,本来在 clyz 训练时有 xzx 学长带的耳机可以听歌,而前两天由于其不在所以无法听歌,放了在学长面前十分的尴尬, 而此日我们并没有与学长在一个机房里训练(被喜茶驱逐了,不开心),于是我放起了歌,众所周知我最爱 Beyond,因而第一首自然是《海阔天空》,另有一首《勇闯新世界》(你有斗志,劈开荆棘路。试过再试,哪恐天高!有一天会被欣赏,耀眼光在前方上,毋畏再等,全力去干,冲天飞!)——或许是赛前对自己,对全部的 FQYZOIER 的激励吧!

晚上来到时代中学附近的全季酒店,做完一道 CDQ 分治四维偏序优化动态规划的一题,便好好睡上一觉。

Day 0

似乎许多人使用 Day 1 表示比赛日,本人使用 Day 0 是为了后文赛后的时间表示。

上午

???全季的早餐怎么变了,上次第一轮还有那么多丰富的食品,怎么消失了?无妨,吃几根香肠,食用土豆以填饱肚子,约莫 7:45 左右出发前往附中初中部时代中学。

T1——CCF 的 T1 是一年比一年简单,把字符串中的数字取出来降序排个序不就结束了。

T2——CCF 的 T2 是一年比一年简单,这不就普普通通的数学题吗?这有思维含量吗?不过从赛后的视角来看,本题的思维含量大概是——不要把行数 n 和列数 m 看错,自然,我并没有看错。

T3——渐渐感受到 CCF has no egg。给一堆部分分给我拿?孰要?自然要追求满分的——好吧,是我草率了,满分或许对我过于难,只得写个暴力+特殊性质估计六七十分吧。

T4——犹记得去年 T4 题面看一会儿就发现过难不看了,赛后发现是蓝题。今年——CCF has no egg! 搞什么?前两题那么简单,后两题又给了一堆部分分,可是本蒟蒻却无法 AC。仍是暴力+特殊性质,64pts。

还剩一个半小时多,玩了一会 Edge 的冲浪,How great fun it is! 玩久了没意思,于是写了个 CCF has no egg! 的放大版放桌面上,CCF 你有本事就收上去啊,我们班的 Champion 何冠君同学称其为吾之英勇事迹;之后再写了个增加 RP 的程序,大概如下:

unsigned long long rp;
int main() {
  do {
    puts("CSP-J/S2025 RP++!");
    rp+=1E15;
  }while(rp);
  printf("RP: %llu\n",--rp);
}

赛后看来,应该是这个程序让我的 CSP-S 窃取了许多学长诸如 AAA404 和去年专业级挖矿大赛(PION)省一等奖的高一BpbjsGreen 比居学长的 RP。

估计 CSP-J 也就 320+pts 吧。太蒟了。已经参加 3 次 CSP-J,以赛后视角,列出这三场的具体分数对比一下吧:

2023:100+0+10+0=110 \\ 2024:100+100+0+0=200 \\ 2025:100+100+75+64=339

哎,三年 T3 都是黄题,却还是从没场切过啊。

中午上你谷发现有 CSP-J 自测赛,然而只有 T4 数据,先测了个 T4 得 64pts 与估分完全一致,后默写了前三题代码先提交上去,方便傍晚回家路上查看测试结果。

下午

仍然前往时代。

路上接到了喜茶的电话,说是让我合理分配时间不要死磕一道题。我有点担忧地询问今年 T1 是否会像曾经某一年一样难度直接提高+,喜茶说正常不会,应该是普及-签到题,让我有点安心。

与 BNCDBD 在同一考室,赛前在候考室聊了一会儿,说 CSP-S 没有一等奖就 AFO。

进入考室,约莫还剩不到 10min 开考,我点开 Edge……hahahahahahaha 我的那台计算机性能实在太好了,卡死了。

“谁叫你动计算机的!”来自监考员。

重启,已开赛 1min 了,迅速打开赛题文档。

以时间顺序叙述吧。

先开 T1,一看题面,签到题必须迅速拿下!然而细想,我却越发迷茫,本以为是动态规划,但四维空间会直接爆掉……想啊想,随着时间的流逝,已是 3:00 了,然而我半点思路没有。

真的要 AFO 吗?

听喜茶的话,只得先前往 T2,这很明显的最小生成树,可暴力枚举每个村庄是否城市化直接 TLE 了——不对,再看数据范围,k<=10?计算一下暴力+特殊性质的部分分——64分!而且听说今年 CCF 的少爷机跑得飞快,快到飞起,或许我还有机会拿到 70 分?一下子写完代码了。前两个样例极其小都过了,样例三是特殊性质自然也过,而到样例四——WA?怎么和标准输出差这么多!开始瞪眼代码,瞪眼,瞪眼……不知不觉又过了快一小时,可我愣是没瞪出什么错误来,自然在这一小时内我亦有在想 T1 的解法。

回归 T1,however,这半个多小时,却是我比赛中最痛苦的时间。目前的状况是什么?——T1 没分,T2 样例四 WA,很明显只能拿到特殊性质的 48pts?

真的要 AFO 吗?

此刻,我的心情是前所未有的低落……喜茶都说了,T1 就是签到题,你 T1 都没有 AC,不是很明显只有三等奖吗?!难道你要比去年二等奖第一名还差吗?难道你要辜负喜茶对你的期待吗?

此刻,我却也想到了同桌 ljy 说的。由于我备考 CSP-S,所以部分作业赛前没有做,而我此前又时而 嘲讽 同桌 ljy,他便借此说:“clo 今年考不好都对不起他没写的作业。”

是啊,你,clo,你今年连一等奖 这么简单的一件事 都做不成,你对得起你没写的作业吗?你对得起各位老师在背后默默的支持吗?你,对得起吗?!

我,已在崩溃的边缘。

你想让 hcj(BNCDBD)嘲讽吗?你想让 xzx 口中的 Gay,去年压线一等奖的 CSB 学长嘲讽吗?你是曾经模拟赛获得过第一名次的人,难道要就此堕落吗?你难道想要让 huangbeng1020 冒泡学长以看待 zcf 的眼神看待你,认为你之前的模拟赛都是抄的吗?你难道要败给那个蒟蒻 linhanqi 吗?

种种质问刺激着我,也激励着我。

犹记九十两月,我过得有多艰难。校内尽最大的努力飞速完成作业,还有花少量时间背书,然而甚至还要抽出部分时间看蓝书《算法竞赛进阶指南》。回家基本把文化课丢了,你谷基本都在线,紫题通过数量从 0 道一直努力到了十几道,绿蓝题通过数量也迅速增长,10 月总通过数更是高达 150+(然而和 wkc 学长相比就相形见绌了,但对于我来说却真实前所未有的多)!

反观 hcj,由于我七下是他还是小学生没有压力,因此通过数量暴增,而赛前——碍于其 732 的压力,做题热度图染色格子数却是少得可怜,而由于老师给予我的种种“特权”,我的 10 月仅有月考前一天没有染色。

You,真的相信喜茶所言“一分耕耘,一分收获”吗?

You,真的对得起你两个月的努力吗?真的想拿 CSP-S 一等奖进 NOIP 和学长一起玩吗?

“相信我!Believe me!T1 定能切出来的!今年,不拿一等誓不还!”在不服输的好胜心的驱使下,我坚定地回答自己。

只得硬想,硬想……

经过 30+min 的硬想后——终于,终于想出正解了!首先对于每个人,满意度最低的 club 显然没有用,只需保留较大的两个满意度。之后将人排序,将最大值与次大值差更大的排在前面。之后贪心地选取最大满意度,如果该 club 已经选了 \dfrac{n}{2} 个,说明次大满意度的 club 肯定还没选 \dfrac{n}{2} 个,就选次大满意度。

此时此刻,我不禁喊出:CCF has many eggs! 本以为今年 T1 真要炸的,却在不懈坚持下切了出来!很明显,今年 T1 绝对不是签到题,难度评级预估:上位黄(提高-)。我也猜到,今年 T1 肯定会让许多人挂掉(为后文埋下伏笔)。

继续调 WA 的 T2。由于花两个多小时切出了 T1,我的 confidence 暴增,T2 只 再花 50min 就调出来了——原来是在每次暴力枚举跑 Kruskal 时对边排序没有把边复制一份,导致跑一遍 Kruskal 后前 m 条边不一定是原边,影响了后续的求解。赛后我也十分后悔,为何在 T2 的如此小细节和 T1 上花了三个多小时的大量时间,若在两个半小时内就解决完全能让我 CSP-S 得到更多的分数。

T3——没啥好说的,肯定不会正解,暴力再加 Hash 优化一下,得个 30 分左右吧。写完剩不到 20 分钟,我急忙看 T4,发现有一个特殊性质是送的——阶乘!写出程序匆忙测试却 WA。发现 c 可能为 0?也就是说直接不参加招聘了?这么神奇,这面试者是入机吧。

于是我直接把我 T4 的错误代码删了,然后还是写了个 RP++ 的程序,再过几分钟,傍晚 6:30,4h 的 CSP-S 终于结束了!

赛时预估题目难度评级: T1 上位黄,T2 下位蓝(我都没有切出来,肯定要评蓝),T3 下位紫,T4 中位紫。

估分:100+[56,68]+[0,30]+0=[156,198]。

走出考室,来到 1F,呼吸时代中学室外的清新空气,实在清爽极了!(运用环境描写,……表现我比赛结束后的释然)

与 fqyz 的同学们一起讨论估分,先是问最强的九年级 huangbeng1020 冒泡学长预估的今年一等分数线,冒泡没正面回答,只先问我估分,我说大概一百六七十,然后学长便道我应该能上。

找到 CSB 学长——(即将照应前文,)“呜呜呜……我 T1 没切!”“你估多少分?”“88pts……”hahahahahahahaha 一看就是 CSB 考上 fqyz 艹艹(菁英)班飘了。叫他去年比我高 10pts 压线进 NOIP,今年翻车了吧!终于可以 嘲讽 CSB 了。他们似乎也在讨论难度评级,我说预估 T1 黄题,CSB 说怎么可能黄题呢,“肯定至少绿!我都没切出来,肯定绿。”看来 CSB 还是不知道自己实力退化得多厉害啊。

hcj:“呜呜……我 T1 没切出来!”(再次照应前文)“估多少分?”“最高 138pts。应该没有一等奖了,要 AFO 了。”尽管那时我在心里也小小嘲讽了他,但还是为他感到些许默哀,因为在我心中,他永远还是 OI 潜力最大的!

同年段的 czx:应该 140pts 左右。

redfull66:什么?估 270+?!果然是 dalao,自愧不如。

平时没怎么花时间的 ldc 学长:“T1 感觉挺好想的,没一会儿就想出来了,但我不会算法,甚至不会暴力,所以只估 110pts。”(那我 T1 想了两个半小时的,受的那么多罪算什么!不禁慨叹思维好就是好啊!)

洛谷估分自测懒得说了,反正就一个——数据 ~不~ 太水,CSP-JT3 给了我 100 分。

Day +3

(由于过于懒因此省略了好几天)

十分地恐慌,总是疑神疑鬼认为自己 CSP-ST1/T2 文件操作写挂了,以为自己不能一等了。

Day +5

成绩终于出了,J100+100+75+64=339,考得确实不够好但确实在意料之内,一等自然稳的,S——100+64+40+0=204!T1/T2 文件操作没有炸!T3 竟然拿了 40pts!原本以为 CCF 数据水,后来才发现原来是因为我 Hash 把 getHash 函数用 lambda 表达式内嵌在 main 函数里的,或许是被内联了吧。S 成绩全国 8%!还记得去年 CSP-S 160 分,本应六级,燃耳被 Luogu 卡成了四级绿钩,如今,终于圆梦七级蓝钩!终于能加入某些出题团了。

Day +14

奖项及每个人的分数公布了,总结出了 fqyz 的部分排名:

  1. 高二 wkc 320pts
  2. 高一金牌爷 sbh 308pts(dalao 很明显最后一题懒得做)
  3. 高二 yyz 262pts
  4. 高一 lch 248pts
  5. 八年级 ljm(dalao redfull66) 234pts
  6. 九年级 ymh(huangbeng1020) 218pts
  7. 高二 jxw 214pts
  8. 九年级 xzx 209pts
  9. 八年级 clo(也就是本蒟蒻) 204pts
  10. 高一 yhx(AAA404,也就是被我盗取 RP 的那个学长) 200pts
  11. 高一 lyx(BpbjsGreen 比居学长,也是被我盗取 RP 的那个学长) 182pts
  12. 九年级 lcy 168pts

在 FJ 同年段排二十名左右。

哎,hcj 学弟 T2 空间爆炸了仅 98pts,默哀。

czx 居然挂到了 73pts,默哀。

CSB 居然得了 124pts,之前竟骗我!

Day +15

终于在 OIerDb 上七级了!

fqyz 一等奖人数:高二 4+高一 4+九年级 5+八年级 4=17 人,仅比去年进步 5 人。

cyh 142pts,居然刚好卡到了 NOIP 初中生体验赛分数线,无法体验本人去年的感受。

结语

或许我因此比赛考得不错而高兴,燃耳有必要静下心来想一想,这成功的背后究竟隐藏着什么。

首先,最最最最要先感谢的应当是教练喜茶,你说八月初我有花时间学 OI 吗?有,但相比于现在花的时间少得可怜!某日,喜茶开始 监视 我,要求我常把做题记录发给他,一开始花的时间也并没有增加多少,但日复一日地,看着 oi-wiki,写着 Luogu 的题,自己学着一个个新的数据结构、动态规划,我是越发感受到对 OI 的兴趣。八月前我的紫题仅通过 1 题,截止到目前,我已通过 40 道蓝题,14 道紫题。若无喜茶,我怎能对 OI 如此感兴趣?!自然也无法获得 S 如此之成绩。若无喜茶,我也不会即使是周中也熬夜到晚上 11 点(即使对于某些人来说这完全不算熬夜,但对于本蒟蒻来说这算熬得很晚了)孜孜不倦地研究 OI。九十两月或许是我过得最艰难的两月,一方面不能完全落下课内,一方面又要熬夜到如此晚,然,我却亦并不感到任何的不情愿。这,全是喜茶对我的严格监督,对我的兴趣引导。

再者在此必须真挚感谢在背后不断默默支持我的校内各科老师,尤其是数学叶老。国庆期间本蒟蒻集训时间紧迫,虽临近月考,英语老师却允许我少写两张卷子,我省下了更多研究 OI 的时间,也进步迅速;即使月考语文仅考了 114 分班级倒数,总分仅年段三十名,燃耳语文老师&班主任也没有批评我;赛前周末备考紧张,尽管距离半期考仅剩三周,语文老师仍免了我抄抄写写的作业;为了我们更好地准备 CSP-J/S,老师顶着重重压力帮助我们请假运动会……这些种种对我的支持,让我得以更好地准备 CSP-J/S,亦一点点地提高着我的 CSP-S 成绩。

数学叶老,不可否认,各科老师都非常支持着我,但他定然是我成功的极大贡献者!刚入学,叶老并不知道我要准备比赛,而我每天晚上都要花大量时间研究 OI,以至于数学成绩并不很理想,也曾被叶老训斥过;大概是国庆期间,叶老从某些渠道了解到我们在准备 CSP-J/S,于是国庆刚回来即言,我们这些 OIer 全力以赴比赛,课内落下一点没有太大关系,赛后若数学有缺漏的他定会全力帮忙,甚至于说数学作业我们尽力做即可,实在不行的就不做了;半期考一考完数学便知自己连 120 分都上不了了(呜呜,八上几何太搞人了),告诉叶老,叶老却言“没关系啦”却是一点没有责怪我。赛时,当我做不出 ST1 时,一想到各科老师在背后对我无比的支持,我就更加坚定决心要切出 T1 拿到一等奖进 NOIP!

喜茶与各科老师的付出定然是功不可没的,《燃而》最终的成果还得看自身平时的努力。实话说,我其实在计算机科学上是有一定的天赋,就比如自学了 py 一点点参加了某比赛,他人很多都是专门去训练 py 的,然而我 py 语法都没有完全熟透,却在初赛和决赛都获得了 100 分位列 fz 市第一。而 ljm 的数学与信息学天赋自然比我高多了不知道多少。但我们平时绝对是极为努力的。九十两月本蒟蒻每日熬夜到 那么晚,既痛苦却 亦很情愿。ljm 紫题目前已通过 20+ 道。每学懂一个新的数据结构,一个新的图论算法时,我们均会越发感到信息学时饶有趣味的。CSP-J/S 赛前的三天我们早中晚都到机房写题,打比赛。没有人能否定我们自身的努力。正如喜茶一年前所言,“一分耕耘,一分收获。”那时由于 CSP-S 只 考了 160 分,因此并不能很好理解这句话。如今,我才真正体悟这句话的含义。

附

语文半期考,由于作文非常奇怪, 硬是把此邮寄改编了写进作文里。

NOIP2025 RP++!