CSP-J/S2025游,大祭

· · 生活·游记

第一次写游记,尽管我的文笔是那么烂,不像其他巨佬的文笔如此细腻优美。但是还是想和大家分享一下我的感悟和思考。

注:这是蒟蒻的游记,分数考的超级低低低低低低低低低。大家都来看个乐子如何被 CSP 吊起来打的就行了。

CSP - J 初赛

考试前

坐标 HNCS,看到考试地点,笑了,就在我们学校(难怪前一天放学时间那么早),一大早到校,在门口转了几圈没找到同学,于是我就进考场了。然后发现同学都在考场里。与同学押了一会儿今年的题目,接着就开考了。

开考时

拿到试卷,涂完准考证号,看题目。前面选择题全切了,到了后面阅读程序,草稿纸渐渐多了起来,瞟了一眼旁桌,都写到完善程序了。于是我就奋笔疾书,然后发现阅读程序的第 33 题被删了,当时看成了完善程序的第 33 题被删了,接着我就没做做错了题。最后 30 分钟,我已经写完题目很久了,本想睡一会,结果发现答题卡还没有填,无奈只好……

考试后

下楼时遇到同学,他说第一题答案是 2\times 10^{10} 那个选项,当时我就笑了,他傻了。

CSP - S 初赛

开考前

这次我直接进了考场,遇到了一个说会写 O(1) 快速幂的巨佬,我又笑了。

考场里有一个带了一堆零食的人,一直搁那吃,给我馋住了。

考试时

拿到试卷,选择题还是太吃操作了,写了我 1h,然而在 30 分钟的时候,那个带零食的人说他写完了,然后就离场了。

后面阅读程序全靠模拟得分,完善程序第一题倒是读懂了,第二题直接开蒙,今年初赛怎么都考起交互题了(其实没什么区别),有点意思。

考试后

考完后直接回家了,因为同学都不记得答案。

查分

J 组预估 62.5,S 组预估 55.5,查分发现 J 组只有 60 分,很奇怪。

原本上一年我的分数就很刺激了,结果今年更刺激,刺激!

CSP 复赛

Day -1

最后一次模拟赛,发现 S 打了 143,感觉今年 S 组一等大概率是稳了。

Day 1

早上跟校队车子去考场,一路上背了一遍线段树板子。找到座位坐下,同学就坐在我的背后。测速,不愧是大学的机子,一秒 3\times 10^8 都能跑。比我们学校的机房快多了。

一排四个座位,我所在的那一排除我之外全都在打游戏。

开考,解压密码成功的输入了 12 遍。首先看 T1、T2,不知道部分分给了有什么用,30min 切。

T3 瞪眼法看不出什么,首先打上暴力垫底,然后转战性质 AB,发现如果 k=1,答案就是 1 的个数。k=0,答案就是 1 的个数除以 2 加上 0 的个数。用桶轻松水过。正解先放在了一边,先把 T4 兜个底再说。

T4 依旧瞪眼法,瞪了半天瞪出个暴力,拿下 n\le 20,然后观察到测试点 15\sim 20\ \max^n_{i=1}a_i\le 1,发现答案就是 C^3_n+C^4_n+C^5_n+...+C^n_n,但是会爆 unsigned long long,取模答案会错,于是 __int128 + 快吐卡一波。

感觉测试点 15\sim 20\ \max^n_{i=1}a_i\le 1 还有救,于是爆搜打表。不知为何挂了 2h 才挂到 n=251,只好收下。

回看 T3,像 DP,但是被异或整傻了,没打。

想 T4,发现像背包,但是有一些思维,于是果断选择放弃。

PS:在肝 T4 的时候看到我右边的人已经切掉了前三题,然后文件夹建在了桌面,在此为他默哀 3 秒。

离场,预估兜底 100+100+30+40,有点慌。

出来遇到校队最强 HRB 哥哥和 CHN 哥哥,问他们估分发现和我差不多。但是 T4 爆搜 + 记忆化可以拿 60,我好像没想到……

于是也是光荣的和 HRB 哥哥一起吃饭、讨论题目解法。

欸你别说理工大学的食堂还怪好吃的。

吃完饭围着大学逛了几圈,人身就因该这样充实美满啊。

S 组

溜达几圈就去了考场,这次遇到 JYX 姐姐,她说她 J 组考炸了,撑死 300pts。显然,这是假的。

进考场,依旧测速,但是下午的机子没有上午跑的快,3\times 10^8 跑了 0.07584s,上午只用了 0.05s

敲了个快读,以防万一。

开考,首先解压耗时 3 \min,敢说全机房最慢。然后开题。首先瞪眼法 T1,10 \min 贪心果然质量差,样例都没过。然后打了个暴力兜底,本以为可以跑 n\le 30,然后发现只能跑 n\le 10。生气。

看 T2,瞪眼法瞪出最小生成树,首先板子拿下 k=0,然后看到性质 A,发现可以一起将所有的遍全部加进去,因为改造的花费为 0。此时 m\le 10^6 跑了 0.9854s,太极限了。

想到用“超级原点”+ 预处理 m 条边法,但是写到一半放弃了。回来看题解发现如果我顺着思路继续写下去可以场切蓝题,气死我力!

然后是 T3,T3 首先打个 O(qn^2) 的暴力兜底,然后尝试优化,发现对于 (s_{i,1},s_{i,2})t_{i,1},t_{i,2} 好像存在前缀和后缀的关系,但是没时间了,于是跳转 T4。

T4 依旧瞪眼,暴力首先预期拿 n\le 18,发现又挂在 n\le 10。于是看特殊性质 A,想到全排列,答案就是 A^{耐力非 0 的人的个数}_{字符串 s 的长度}。但是好像会爆 unsigned long long,于是依旧 __int128+ 快吐卡一波。接着瞪到 m=1,也就是说只要有一个人的耐力大于 0 并且 s 字符串中 1 的个数大于 0 就一定有解。于是全排列,但是依旧被卡 unsigned long long,还是用 __int128。最后看到 m=n,这里就需要所有人的耐力都不为 0 并且字符串 s1 才有解。特殊判断一下。

回看 T1,想把爆搜改成记忆化,但是由于太蒟改不出来。

PS:看到左右两边的人都在打游戏,真不知道他们怎么想的,交了大几百块钱只过来玩个游戏座 4 个小时,不知道他们有什么脸回去跟老师父母交代,想玩游戏来这里玩干什么,回家放心打它不香吗,我都不像喷了,再喷我都要气炸了。于是找借口上厕所出去冷静了一下。

回来继续肝 T1,模拟发现好似可以用优先队列过,于是疯狂敲代码,结果大数据 4 死活不过,但是误差很小。感觉这种方法也可以骗到分。于是检查文件格式和 freopen。放心离场。

出来遇上 LZH 和 LHK 哥哥,问了他们估分发现一个 J 组估分 340+,另一个 S 组 160+,都是巨佬,一路膜拜。

讨论解法,发现 J 组 T3 用区间 DP 板子可以水到 60 分,T4 用 DP 可以水 80 分,如果评测机跑得快一些可以卡到 100。早知道就写 DP 了。

S 组 T1 听同学讲发现第三个数字没用,只需要考虑前两个。排完序后直接正常贪心即可。听到这感觉我可以 AFO 了。

出门跟 LZH 哥哥告别,回家一路上都在算分。

S 组估分如下:

T1:25+?

T2:48+?

T3:10+0\sim 25

T4:28+0\sim 16

反正兜底 111别说数字还挺吉利的哈

一等有点悬,但是毕竟尽力了,回来发现难度尽然是绿蓝紫紫,更多的不是沮丧,而是满满的自豪和愉悦。

结果必然重要,但是体验过程才是最重要的。

游记到此。希望大家都能获得理想的分数,拿到一等!

明年,我等着你。

The\ End.