2025csp-s游记

· · 生活·游记

初赛在本校考,因为每次考初赛都过了所以没啥压力,考试的时候和lsd一起坐,后面发现了稀有人物lzh。还以为他不上北中就不会学OI了 O.O。他进来的时候莫名有点喜感,我和lsd一直在笑(

选择题还有阅读程序前两题还是比较简单的,但是后面的题一直做不出来,于是凭感觉蒙了一些选项上去,觉得这个分数应该够了,就回去检查前面的题,考完的时候感觉没过多久,进考场到出来就像做了一场梦。我觉得我是70分左右,肯定能过了,于是回家就没进行任何估分。

到了查成绩那天,我看着身边的许多人都上了80,jsh甚至九十多,迫不及待想知道自己考的咋样。我想要创造一点仪式感,于是查分的时候用手挡着分数慢慢挪开,嗯...个位数是3,再缓缓挪开一条缝,没有小数点,把手拿开后发现也没有十位数?!成绩那一栏下面,一个孤零零的3安静的看着我。当时脑子一片空白,盯着这个页面楞了几秒,之后尝试退出重进,但是结果没有任何变化。

过了一两分钟,我发现zjq和hdl也分别获得了6分和3分的高分,稍微放心了一些,后面就和他们一起,跟着教练准备申诉材料,最后申诉成功,分数是70.5。

复赛是比赛前一天中午坐大巴出发。出发前一天晚上很开心,因为可以出去玩一天。上车前一个小时在看hzy借给我的化学练习册,后面睡了亿会,醒了之后旁边的江江在背帽子工厂里面的那些头衔:叛徒,特务,大军阀...造谣公司传话筒,逆流邪风小爬虫...这是准备回学校开玩笑用吗(

坐了四个小时车,对我这种晕车的人来说算是酷刑了,到酒店的时候头还是很晕,没什么胃口,随便吃了点东西就上楼回房间了。

回房间不久后hzy来了,她给我介绍了一个叫汉密尔顿的音乐剧,于是我们一起坐在床上看,可惜我听不懂英语,大部分时间都要盯着字幕。后面lz和lsd也来了,我就和江江,lz还有lsd打斗地主。hzy在旁边看我玩,后面我把手机给hzy和他们玩uno。她看起来运气非常好,总是给别人加牌,自己又总是有牌出(我不会玩uno)。

大概十点时,ld和lsd走了,房间里只剩下我,江江还有hzy。于是我们直接洗澡睡觉了。晚上的时候我一直在翻翻滚滚,不知道有没有吵到江江qaq。

早上在天刚亮的时候醒了,但是又继续在床上赖了一会。然后和江江一起下楼吃早餐,之后一直和他们在房间休息。

在去考场的车上,和江江一起复习了一下kmp和manacher。下车之后被拉去拍照,有点想和hzy和江江拍,但是看教练说要赶时间就没找他们拍。在电教楼里面找了好久都没找到我考场,后面发现是走错楼层了,到考场门口发现我们这间考场的人都没进去,不知道怎么回事,就和他们一起在外面站着,等了一小会之后可以进了,我不知道不能带吃的,于是进去的时候被拦下来了,只好放好吃的重新排队。

这次提前了三分钟发密码和结束考试。四道题都看了一遍,感觉一二题可做,三四题感觉暴力能骗大量分,估计难度像去年一样是“橙 绿 ??”,信心大增。第一题如果没有社团的人数限制直接贪心就行了。我尝试先把所有人直接分配到权值最大的那个社团再进行调整。然后发现在任何时候最多有一个社团超过人数限制,于是可以第一次分配完之后让一部分人去次大权值的社团就行了。这时把每个人重新分配后损失的权值排一下序,选择损失少的来调动。四十分钟写完,大样例直接全过,相当顺利的开端。

开始看第二题。我一开始以为每次动用村镇的道路都要重建,于是觉得这就是 n 个点,m+k*n^2 条边的最小生成树(当时看到 kn 都很小就没想到 m+k*n^2 条边存不下)。火速打完之后小样例还过了,测大样例时发现输出和 ans 差得不多,于是笃定做法肯定是正确的,开始对着代码逐行找错。看了20分钟没找出错,于是开始造一些小样例来测试。由于我还是按照错误的理解来出样例,所以自测的样例全部通过了。现在还有两个半小时,我感觉时间还算充裕,就先打了三四题的暴力并且尽量优化了一下,预估三四题 35+16 分。

还有不到两个小时,又要回头看这个难搞的第二题了qaq, 可能是打完暴力之后脑子清醒了一些,这时我终于意识到自己理解错题意了。k 的范围非常小,可以直接枚举重建的村镇,然后就又变成我之前想的那样了,但是时间复杂度直接爆炸,只能拿 16 分。目前的瓶颈在于边的数量太多了,思考了一会发现每个村镇只可能动用当前未使用的道路中最小的。于是关于城镇,只需要维护这至多 k 条边。再加上原图的 m 条边边数还是很小的。于是半个小时重写完,样例死活过不去。后面的一个多小时一直在调这个第二题,一开始的信心逐渐消耗殆尽,只能看着时间一点点流逝...手写堆(没错,我不会用优先队列)测了一遍又一遍,其他地方也被我着急的目光一遍遍扫过,但是并没有看出什么错误。还剩十几分钟,只好检查一下文件读入和文件名。然后绝望的到处乱点。突然,我发现我的被我折叠了的cmp函数的小于号写成了大于号!我像死灰一样的内心又被希望之火点燃了。改正这处错误后,样例还是没过,我飞快的滑动着滚轮,却看不出任何错误。最终,我的第二题以 0 分收尾了,在情绪的大起大落中,我甚至忘记了打 16 分的暴力。

回家后,我发现我连最小生成树的算法都记错了,按边的权值排序后,只要是两端没联通的边都可以连,而我以为必须要有一端在生成树里面才能连。这样看来,我从一开始就没办法拿到这道题的任何一分了。改好最小生成树算法后,这个做法在洛谷上拿了80分...有点哭笑不得了。

分数 100+0+35+12。差5分一等,这是我最后一年学OI,再也没机会拿到s组的一等了=(。