我的第一次CSP-J
我是一名初二的学生。2025年11月1日,我参加了人生中第一次正式的比赛——CSP-J。这将是我向信息之路迈出的第一步。由于这是我第一次写游记,所以呢,这篇文章我还要讲讲我对信息技术的兴趣的由来。
兴趣的由来
指令是什么东西啊(恼
记得还是在小学4年级,我十分喜欢玩Minecraft,我对信息的兴趣一部分就来源于Minecraft的Command。使用Command,我能做许多原版做不到的事情:从指令商店,到玩家互传,再到抽奖机、雪球菜单,甚至是纯指令搜打撤游戏……Command带来的创造性远不止于此。那时,我还当过服务器的指令师,当然,没有工资。
SRPN?这和IT有关系吗?
在互联网的探索中,我又遇见了一个组织,他们关系密切、素质高、的组织,叫做星球阁(Star Pavilion,SRPN),别看这个和信息技术没关系,其实也是有一定关系的。当时,星球动画的制作非常火,带动了星球圈的热度,而星球圈就是以SRPN主张的。我那时也是通过这个认识并加入了SRPN。SRPN真的是一个伟大的组织!之后,我由从某个SRPN成员里得知了一款叫做航天模拟器(Space Flight Simulator,SFS)的海外游戏。那时我用的是安卓,我对信息技术的兴趣第二就来源于安卓。那时造火箭需要改图纸,我便对安卓的兴趣提高了。甚至,我还学会了学以致用,成功使用文件管理器完成了Minecraft的存档移植(具体是把网易我的世界的存档放到了国际版里面)!不仅如此,在访问SRPN的官网时,我发现官网的设计非常巧妙,于是便叫SRPN阁主Nsakrty搞到了源文件,我才发现,原来网页是用HTML搞出来的!于是,我对HTML也有了一点兴趣,算是更有对信息技术的兴趣了吧。那时,我感觉我是SRPN里面最有出息的人(?)。
Python助我!!!!!
一转眼来到了六年级,那时侯,家长为了提升我的思维,就给我报了编程学习课(虽然只上了一段时间,之后要缴费的课程就不上了)。以前,我对代码非常厌恶,认为它是毫无章法的东西,学了HTML之后态度就有了一点转变,在学编程的时候,我深刻地感受到了Python(以前我以为Python读喷史,学了才知道读拍森)的美。嘿嘿,看来学信息技术还是有点用的。不过,在不学Python之后,我对Python的兴趣逐渐冷淡了,可能是因为当时小升初压力大吧。
我和C++的一见钟情
之后我再次接触编程就是堂堂正正地接触了——小升初的信息课。在信息课上,我了解了C++的使用,比如用C++写hello world和A+B Problem之类的。之后,在老师教我们生成随机数时,我直接就是一个srand(time(0))大概写了一个如下的代码,主要是出口算题:
#include<iostream>
#include<cstdlib>
#include<ctime> // 以前老师要求我们把头文件背下来,到现在我才理解这些头文件是什么意思
using namespace std;
int main(){
srand(time(0)); // 这一行的东西我那时根本理解不了
int a1=1+rand()%10,a2=1+rand()%10; // 当时老师还给我们一个权威的公式:a+rand()%n(a表示起始值,n是范围)
cout<<"请告诉我"<<a1<<"+"<<a2<<"的结果:";
int ans,c=a1+a2;
cin>>ans;
if(ans==c) cout<<"哥哥好棒! ";
else cout<<"哈哈多学两年半吧。";
// 没有return 0,因为老师告诉我们不加也可以。
}
当时我把代码写出来来,全班都抢着要我的代码,我天真地认为自己是班上最强的人,嘿嘿。
FCK老师的辛勤教导
然后,嗯,就到了七年级。那时我的编程老师FCK发现我的数学成绩很好理所当然地认为我的编程也很好,于是我被抓去学了半年的C++基础语法。那时我们在新校区,而范老师通常在老校区,每次上他的编程课都非常开心,尽管要坐半个小时的车。那时我才真正了解了C++,比如主函数是int的,其他函数可以开在外面的(当时对函数的概念被Python带偏了),变量是可以存在函数外的……我的妈呀,我感觉我真来到了一个新世界。我每次上完课回家,第一件事情是打开Dev-C++露两手展示自己的天赋,然后感觉自己很厉害,把成果发到班级群里,让他们羡慕死。
我的兴趣就是神
这一刻,我编程的兴趣被拖入巅峰。这一年我都在和FCK老师学基础语法。我们硬生生地从变量学到了位运算、二分、排序、DFS等等,似乎学了好多,但总是被学长说我们学得不够。我们十分有信心地参加了许多比赛,像CEIC和CSP-J之类的。
本场CSP的情况
身为一名掌握贪心、递归、排序的少年,在这次比赛中,我感觉我肯有了?不,现在可能有二等讲和一等奖之间的说法。
考前
我和我爸爸老早就到了九江,说早到早看考场。去看考场之后,我感觉有点恐怖。为什么呢?全黑的桌面壁纸、陌生的NOI Linux、还有右下角写着恐怖地N O I三个诡异的字母,令我一个J组考生心惊肉跳(不过后面还是习惯了)。
我和同去考试的LHX同学相见,他和我互拍丑照, 他十分热情的迎接了我,在我看到他时,他还刷着B站,太好看了。
第一题
我没记错的话应该是number。给出一个字符串,让你求这里面数字组成的十进制最大数。我是用快读做的。大概是这样子:
int num[MAXN],int p=0;
char c='a';
while(c!=EOF&&c!='\n'){
c=getchar();
if(c>='0'&&c<='9')
num[p++]=c-'0';
}
std::sort(num,num+p);
我听FCK老师说,还可以用桶排序(计数排序)来做,这确实是个好办法。
但是,我犯了一个致命的错误。这里我就不讲了。我先寂寞去吧。
第二题
一道排座位的题目,我记得是用sort加数学计算来做的,我具体也忘记了。应该可以满分
第三题
不会做。依赖特殊性质1做的,大概有个20吧。
第四题
多边形题目,我实在不知道如何做了,于是我做了一个打表+暴力递归,大概30吧。
总体
感觉如果第一题能过的话,金牌可能有了,这次冒险估分估一个130(0+80+20+30)~250(100+100+20+30)吧!
结语
以上就是我的兴趣的来源和CSP-J情况了。在这里,我还想说几句:从红题刷到黄题,CE到RE到AC再到TLE,何尝不是一名OIer的过往?曾用/give @p command_block改变世界的孩子,终究有着#include<future>令自己心怀未来。