CSPro43 游记

CSPro,全称CCF 计算机软件能力认证,也可以称作 CSP。需要注意的是,这个比赛与面向中学生的 CSP-J/S 并不相同,虽然二者都是 CCF 举办的编程考试,但前者面向大学生,而后者全称CCF 非专业级软件能力认证,面向中学生。下文的 CSP 指的都是 CSPro。

暑假时🥕在 HUST OIer 新生群中提醒大家报名 CSP。我虽然报名了,也大概知道这是 CCF 举办的面向大学生的编程认证,但对于其具体比赛形式不太了解。考试的前几天我开始尝试寻找一些关于 CSP 的参赛经验,但是并没有找到。于是我又向 U 群群友和一些学长求助,但还是有很多问题没有搞懂。我感觉问太多问题可能会比较让人厌烦,所以没继续往下问,最终比较迷茫地迎来了考试。本着造福后人的原则,我写下了这篇 CSP 游记,或许能给第一次参加 CSP 的同学提供帮助。

考试时需要准备身份证和自己打印的准考证,准考证可以在报名网站上下载。可以携带纸质资料(这和 OI 比赛很不同),但我觉得没什么要带的,所以只带了自己的草稿本。CSP 的考场似乎和考生的学校有关,我的考场就在 HUST 校内的计算机新大楼 2 楼。一进入考场我就发现 CSP 考试的管理没那么严格,至少和我参加过的 OI 比赛相比是这样。首先,考场没有任何安检,甚至能把手机和背包直接带进机房。当然手机要求关机并放在包里,包要放在机房前面,但是似乎没有人检查。此外,选手的座位是相邻的,并且电脑之间没有隔板,看样子考试的负责人比较相信同学们的自觉

关于上机环境:似乎没有人在考试前检查电脑是否可用,我和我旁边同学的电脑一开始都打不开,只好叫监考老师。监考老师检查后发现显示器的线被拔了,于是数落了一下我们的同学不爱惜公共财物。电脑上有 VMWare,打开后有三个 Linux 虚拟机,分别命名为“NOI Linux”“CSP Linux” 和 "Ubuntu",机房的多媒体大屏上写了虚拟机的密码 "csp2020"。一开始我想使用我熟悉的 NOI Linux,但是密码不对。然后我暴力枚举了一下,发现只有 Ubuntu 可以用这个密码打开。然而这个虚拟机里面没有我熟悉的代码编辑器(我一般只用 Sublime),只有 Vim 和 VSCode 之类的,我不太会用。(写到这里的时候我突然想起来,这本质上不就是文本编辑器吗,写完代码之后直接在终端敲指令就可以运行了,除了 Vim 哪个不能用?😅太久没写代码智商真的降低了)而我又不太敢问老师 NOI Linux 的密码是什么(监考老师看上去有点凶),所以只好用 Windows 了。Windows 下有 DevC++ 和 VSCode,而我还真不太会用 VSCode(这下我是真不懂怎么用 VSCode 编译了),所以只能用 DevC++ 这个远古 IDE。我不得不说我可能已经有两三年没有用过这个东西了。

机房键盘的键位我感觉非常变态,它的回车键占两行,挤占了 Backspace 的空间,所以 Backspace 只有一格,这导致我删除的时候经常按到回车。键盘右上角其他标点符号的位置也有点变动,我很不习惯,经常按错。除此之外,如果在按下其他键的同时按下空格,空格不能被正常输出。而我习惯在代码中加空格,这个特性使得我打字快的时候打不出空格。总的来说这个键盘可能比 DevC++ 给我带来了更大的阻碍。

不同于 OI 比赛的代码提交方式,CSP 提供了一个线上的 OJ,登录校园网后即可登上 OJ(所以参赛之前你可能需要记住校园网的账号和密码,我就差点忘了)。题面和样例都需要在 OJ 上下载,赛时可以直接把代码提交到 OJ 上,并即时测评看到分数。此外,部分题目还提供了大样例,所以某种程度上这是优化后的 IOI 赛制。

下面说说写题过程。 CSP 题面和 OI 比赛的题面形式完全相同,都是 CCF style 的 pdf 题面。T1 和 T2 的题面很长,与 OI 题有很大区别。二者共用了一个涉及到概率统计的背景,其中给出了很多公式和结论。刚读题时这些数学内容很吓人,但很快就发现我完全不需要理解这些东西,题目已经把需要用到的公式给出来了,至于公式怎么来的并不是考生需要知道的事情。这样简化后的题目就很简单了,T1 排序后二分即可,T2 可以转化为一个 01 背包。由于一开始花了一些时间熟悉电脑,所以 30 min 的时候才通过第一题,50 min 时通过第二题。

T3 是一个题面有四五页的大模拟(T3 放大模拟似乎是 CSP 的惯例),我看了两页之后就不想做了,先跳过。T4 是神秘数学题,我想了半天只会 \(x/y\) 恰好为 \(k\) 的 Subtask,这个很简单,有 40 分。对于 \(\lfloor x / y \rfloor = k\) 的情况我想了很久也不会。然后又去看 T5,明显是一个复杂的数据结构,也不会,最终又回来做 T3。做 T3 的过程比想象中的顺利,我先反复阅读了几处关键信息,然后在草稿纸上写下需要维护的东西,再开始写代码,整个过程耗时大约 1 小时。最终没有调试就通过了,这倒是很出乎意料。剩下的时间把 T5 的 15 分暴力写了,就没有拿到别的分了。总分是

\[100 + 100 + 100 + 45 + 15 = 360 \]

赛后打开手机看到🥕在考试开始后不久就在群里发了考试的排行榜,我才知道 CSP 原来有实时榜单。考试人数有 4300 多人,我大概排在 160 多名。考虑到高三之后我基本上就没怎么写过代码了,暑假时也一直在准备启明班的选拔,所以也没花时间在算法竞赛上,所以这个成绩也能接受。考试前的目标就是达到 300 分就行,因为考到 300 分可以免修七门计科专业课,所以已经达到目标了。至于 xcpc 复健什么的,那是之后的事了。

2026/9/15 夜,华中科技大学

posted @ 2026-09-16 00:19  DengStar  阅读(10)  评论(0)    收藏  举报