CSP2025 游记:我咋这么菜

· · 生活·游记

本人初一才开始学OI,菜得一批(去年甚至因为忘记缴费错过一年CSP

Day 0

上午试机。

机房怎么翻新了,不得不说新的就是好用。

下午拍大合照。

注意到我因为太高被安排在了最后一排。(旁边都是高中学长,畏惧ing

晚上比正常早了 2h 睡觉,希望第二天能有好精神。

Day 1

第一次参加CSP,遂JS都报了。

J 组是奔着1=去的,但 S 组的模拟赛我没打过几场,平时练的题也都不难,想着就拿个2=。

J

T1 T2 常规水题。

开 T3。

怎么不会做???

过了一会儿,我想到了异或的前缀和性质,但仍然只会 O(n^2)的做法。

最后花了 1.5h 写出了 1.5kb 的代码并只获得了一半的分数。

算了起码有分。

最后时间打了下 T4 的暴力。

早知道今年 T4 只有黄题应该先试试做的。

估分 100 + 100 + 65 + 40 = 305

( 实际 100 + 100 + 55 + 40 = 295

出场一问怎么人均 300+ 。

我咋这么菜。

时间紧张,所以我赛后径直回家吃饭了。(埋下伏笔

S

赛前遇到了许多神犇,正当我膜拜时,旁边老师向我发出了灵魂拷问:

“你上午没来考 J 组吗?”

“我,我考了啊。”

“怎么不签到?”

我顿时想起,老师赛前说考前或考后要去旁边教室签到。

好在得益于学校强力的安保系统,老师在监控中找到了我的身影。

进考场。

先看 T1。

思考是贪心还是DP。

没有发现DP的可做性,于是决定打贪心。

思路不太清晰,重构代码好几次,最后生成了一份 1.5kb 的史山代码。

由于代码过于史,于是我一直在祈祷“不要出错”。

好在最终祈祷生效,成功通过所有样例。

再看 T2。

发现是最小生成树。

试图直接写正解未果。

最后花了 1.5h 只做出了 k = 0 的部分分。(悲

尝试写 T3 T4。

没有思路,遂乱写一通。

回 T2。

注意到 A 性质,于是把乡镇和城市的所有连边都扔进边集再跑最小生成树。

喜提 36 分。

最后时间反复检查文件名和freopen。

估分 100 + 48 + 0 + 0 = 148

( 实际 100 + 48 + 0 + 4 = 152

出场听巨佬讲 T2 思路,发现不算很难。

我咋这么菜。

后话

回家后我背默了赛时代码并提交到洛谷自测。

正当我期待着能够 AC 时,屏幕上的一片红色映入我的眼帘。

我:“我分数呢?”洛谷:“我不到啊!”

我细致地检查了代码的每一个角落,不放过任何一个字符。

令我意想不到的是问题出在了快读。

经分析,我的快读只允许两个数字之间最多有一个非数字和符号的字符。

因此,这份快读在遇到行末有空格且有换行时就会读到一个空格和一个换行符。

也算是警示后人了。 :::error[错误快读]

int read(){
    int f=1,ans=0;
    char c;
    c=getchar();
    if(c=='-'){
        f=-1;
        c=getchar();
    }
    while(c>='0'&&c<='9'){
        ans=ans*10+(c-'0');
        c=getchar();
    }
    return ans*f;
} 

:::

幸好官方的数据并不会出现这种情况,逃过一劫。

不过我还是想说:我咋这么菜。