CSP-J/S 2025 游记

· · 生活·游记

蒟蒻第二次参加CSP被吓哭了

考完一周之后才发游记发我也是这个👍

这次是我第一次参加 S 组的考试。这也是我准备最多最充分的一次,不过看完结果,我感觉我可谓是:

(出成绩之后也是直接???了)

J 组!

(初赛的话就不说了you have no eggs

上午乘坐地铁(就是那个哔哔哔哔哔哇哇哇哇哇砰的北京地铁四号线)来到人大附中参加考试,刚刚到考场还是挺有信心的 毕竟是入门 结果到了实验楼就被真实了。键盘手感好到删除键需要按五六下才能删掉一个字符(自行体会)。吐槽之后还被:

(什么时候有时间了你可以去实验楼试一试)

步入正题

上考场看到第一道题感觉还挺简单的,就一个排序题。打完sort之后一看:

  • 1 \leq |s| \leq 10^6

以为 nlogn 的 sort 会爆炸,因此换了做法 啊其实是可以排序的 因为这个还想了一段时间。想到了包括但不限于 dequepriority queue 等很多不可行遐想做法,浪费了大量的时间。后来终于在紧张地思考下大彻大悟想到桶终于做出来,100 pts GET!

此时耗时 20 min,之后花十分钟写了个对拍程序,结果 RE 炸了,看在后面输出都不大就没想着继续写。浪费时间大师

第二题也不难。我J初赛只有七十多分是不是要坐最后一个了 但是感觉不是很好想。试了很多次但是都是错的。让我觉得最幸运的就是 我能自己造样例了! 不知道如果没有造样例的话会怎样地爆零。提示我的主要还是这个警钟:

说明:这是模拟时的最简单那题,没得满!!

同学校的 wyx 和 gs 就炸了,警钟长鸣!

70分钟,拿下 T1 和 T2 200pts GET!

接下来开始感人。T3 看上去就像前缀和。快速写了一个之后发现哎,他让我选好几段。这个就有一点让人不太会了。不过考场上一看数据范围 5 \times 10^5 一看好像是 二分 之类的东西,就敲了个二分,一个样例都没通过老实了。之后又想了很多算法都不太行。一想要不骗个分吧,65 分先把一等保住。暴力敲完之后就交上去了,不但没开 long long 而且没有测大样例! 毫无悬念的,此题爆零

据我所知,爆零的原因是我把异或写成了减法

现在来看一个好的东西:

然而

(仔细观察哦,我提交的是第四题代码而且获得了5分

第四题的话,只剩 30 分钟,指定是想不出来正解了,直接一个玄学做法 8 分拿下。

总分为 208 分。一等都没了啊啊啊

中午

中午我们直接在地铁站旁边的麦当劳解决了。期间看 zdx 玩 phigros 新更新的曲子。还是挺简单的,就一个小16。回家之后就被真实了

之后我们就在人大附中的校园闲逛,同时复习复习算法模板。这次我是在ICC楼,我试了试,键盘手感明显提升

S 组!

噩梦开始!

老早的习惯了,开始考试先浏览一遍题目。T1 好像是个小贪心,又像动态规划。T2 一眼望上去就是分层图...最小生成树???考前练了很多分层图的题目所以应该不会出事。T3 T4 可以直接略过,因为不可能 AC 就是了。

然后我就去敲 T1 的代码。很快一个代码就敲好了。多测这东西我就最讨厌,果然爆了。然后执迷不悟的我开始用一个名为 dynamic planing 的算法,压根没想到 这么多年CSP根本没在第一题上考过这种算法 这造就了我 6KB 的代码,仅有 15 分。而且还耗了我两个小时……

本来以为第二题可以好一点,但是还是没有思路。一看性质A,这不就是 最小生成树板子 吗?默写个模板就有 16 分,这么白送。打完之后稍微检查检查,自己造了个样例测试后应该没有问题直接就交了上去。毕竟并查集用了路径压缩不太会超时。结果就是数组开小了

你猜我一个 kruskal 为什么要加这几行

for(int i=1;i<=m;i++){
    cin>>a[i].u>>a[i].v>>a[i].w;
    a[i+m].u=a[i].v;
    a[i+m].v=a[i].u;
    a[i+m].w=a[i].w;
}

......
16pts -> 0pts RE for all. 此题爆零

T3 以为能总司令,结果他竟然学精了,骗不到分了。

T4 输出 0 可以得到四分。但是,直接看我代码吧。

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int main(){
    freopen("employ.in","r",stdin);
    freopen("employ.out","w",stdout);
    int n,q;
    cin>>n>>q;
    srand(time(0));
    cout<<rand()%998244353;
}

然后就......

All in All

这次可谓是考得低到了极点。学校里最高的也只有四十来分。下一次决定不报名 J 组,会很影响下午的发挥。这是我和 gjn、zdx 共同商议决定的。哎其实还是因为菜

总之下次一定不要死磕一道题,遇到不会的题暴力加骗分是关键,平时练习的时候一定要注重思维。这个贪心其实并不是很难想,只是这种贪心的思维不够格。而且注重理解算法本质,也就不会出现我那种克鲁斯卡尔建双向边的笑话了。

最后还是想说,学习信息学,决不仅仅是为了拿到NOIP的一等。面对一次又一次的WATLE,真正磨练的是我们的毅力与算法思维。这恰好是关键——那些算法,无论是基础的KMP,还是现在想都不敢想的凸包,不都是人们历尽辛苦才发明出来的吗?这次CSP-J/S仅仅是一次测验,除了我们的编程能力,还能决定什么呢?编程是一条长远的路,我还有很长一段路要走。

忽然想到几何冲刺里一位大神说的话:

The number of attempts doesn't mean how bad you are, it only means how many times you didn't give up.

是的,还有机会。现在,放下幻想,准备斗争