OI 生涯回忆录

OI 一纪元:一切都从这里开始(2017 年 7 月 15 日~2018 年 8 月)

2017 年 7 月

2017 年 7 月 15 日,我跟着爸爸经过一条陌生的道路,进入了一扇写着“猿玛青少儿编程”的大门,第一次遇到了我的编程老师。老师给我编了个游戏——我还清晰地记得,老师给我编的是猜数字游戏。老师与我爸爸讨论上课的时间和学费,我就在玩老师编的游戏。我试着修改一些字符,看看游戏会有什么不同的效果,即使我当时完全不懂。自从那节课起,我就对 C++ 这一神秘的编程语言有了浓厚的兴趣。

其实我并不是从学期的开始进来的,所以老师先给我补了两节课以跟上其他人的进度,再让我进入班级和他们一起学习。虽然这两节课的进度有点快,已经学到条件判断和简单的循环了。但是凭借当时我的兴趣,我完全跟上了进度。

当时老师让我们使用 Openjudge 做题,我 AC 的第一题就在 2017 年 7 月 15 日在这个 OJ 中。

在这里插入图片描述

开始进入班级学习后,我发现其他同学的年龄都比我大很多,有些可能已经在高中了,但是进度突然慢了许多。我进入班级的第一天,听老师说有些人循环已经学了一年了,然而我只学了两节课,比他们都好。经过了三节课,其中两节半都是循环,最后入门了数组,老师就准备给我换一个班。

听老师说新班级的同学年龄比我小,但是水平都很高,老师准备给我补一节课。那节课的进度也很快,学了 ASCII 码、字符串的定义、赋值、strlen、strcmp、strcpy。我开始隐约感受到新班级同学的水平与我的差距可能很大了。

2017 年 8 月

进入了新班级后,我遇到了 wls、syy、lrt,他们都比我小一届。第一节课就是高精度计算,我也非常明显地感受到水平的差距。

老师:“怎么将字符 3 转换成数字 3?”
其他同学异口同声:“减去字符 0。”
只有我不知所措。

2017 年 9 月

第一次比赛——“信息奥林匹克小学组”(其实是《六·一 计算机创新实践活动》)就在眼前了,我们也开始备考了。

老师为了训练我们的能力,在复习初赛时给我们做普及组的卷子,当时我们都只得了很低的分数,大约只有 40~50 分。但是在初赛前几周,老师给我们做小学组的卷子时,我们发现我们的分数却令我们不可想象,最好的一次我得了 98 分。

当时我辨别网上的话的能力还很弱。有一次我在网上看到了关于竞赛可选语言的文章里有这样一句话“普及组和提高组可在 Pascal、C、C++ 语言中任选一种答题,小学组可在 Pascal、C 语言中任选一种答题”,我就非常担心,因为我学的是 C++ 语言,比赛时可能会因为各种语言语法的不同导致 0 分,后来问了老师才确认小学组也可以选择 C++ 语言答题。

2017 年 10 月 ~ 11 月

初赛我得了 96 分,是全市第二,老师告诉爸爸的时候还不敢让他告诉我,害怕我知道了影响复赛的状态。

复赛备考时,老师给我们打了许多场模拟赛,第一次在 NOJ 里,后面就在洛谷上,自从那天开始我就认识了洛谷。

当时我的水平连 NOIP 普及组 T1 都不一定会做

在这里插入图片描述

2017 年 12 月

到了复赛赛场上,我才发现第一名是预初的。这是我第一次参加复赛。赛前老师建议我们在进入考场之后测试一下键盘,但被监考老师禁止。

当时考试时间 2 小时,要完成 6 道题。试题是纸质的,机房也比较拥挤,甚至我打字的空间都不太够。我很快完成了 T1 ~ T3。然后,我因为不知道如何在 T4 中在不同的情况输入不同的变量而卡了很久。最后 30 分钟,我做到了 T5,然后 T6 不会做。后来我看了 lrt 的代码,发现我的解法比他简单,并且做对了。

复赛考完了,我得了第 15 名,但是当时甚至不公布分数,我只知道我得了二等奖。

当时我没有写游记的习惯,所以对这场比赛印象也不是太清晰。

2018 年 1 月 ~ 8 月

这几个月老师并没有急于直接教算法,而是不断地练习模拟,在这期间,老师带着我们在 POJ 练习许多红题和橙题,我有时自己也在洛谷上练习。

后来还学了二分、DFS、BFS、01 背包等基础算法。

2018 年 8 月 4 日,这是老师让我们做第一道黄题的日子。在经历 3 天时间和 10 次提交后,我终于 AC 了这题。

在这里插入图片描述

2018 年 8 月 11 日,新学校的 OI 老师 lhj 在我开学之前就要到了我的洛谷账号,然后让我参加一场老师的比赛,有些题目我会做,有些题目我不会。

OI 二纪元:进入西位 OI 课(2018 年 9 月 ~ 2019 年 8 月)

2018 年 9 月

当时,我并没有直接进入 lhj 老师的班,而是先在原来的班上一会儿。开学后,又迎来了下一赛季的备赛了。今年我只能参加普及组,而 wls、syy 和 lrt 同时参加普及组和入门组(即小学组)。

准备初赛的时候,老师一直跟我们说时间是足够的,慢慢做就好了。然后我们和去年一样继续练习普及组的试卷。为了确保我普及组能够过初赛,我有时也会自己练提高组的初赛试卷,避免过度自信。

2018 年 10 月 ~ 11 月

其它同时参加普及组和入门组的人要在两小时内考完两张初赛卷,而我只要在两小时内做完一张,这张做完后就已经过了 90 分钟。初赛我得了 70 分左右,入围分数线是 58 分左右,就这样我通过了初赛,第一次进入了普及组复赛的考场。当时我也没有写游记的习惯,只记得当时得了二等奖。

现在看当时我写得代码,就感觉有时实现得非常复杂。例如我考场上写的 T1(去除了主函数外的内容以节省空间)

ans=0;
for(i=0;cin>>str[i];i++);
for(j=0;j<i;j++){
   
	for(k=0;str[j][k]!='\0';k++)
		ans++;
}
cout<<ans<<endl;

然而只需要很短的代码就可以实现。

ans=0;
while(cin>>s)
	ans+=strlen(s);
cout<<ans<<endl;

然后 T2 因为漏了一种情况以及其它错误挂了 50 分。剩下两题就基本没得什么分,因为当时我 DP 和图论还没学很多。

2018 年 12 月 ~ 2019 年 2 月

最近没有在洛谷上做很多题,可能是看讨论区上瘾了。于是我就找一些其它的 OJ 来做题,避免看过多的讨论区。我找到了 Codeforces,然后就注册了账号在里面做题了。当时我并不知道什么难度的题目适合我,所以我就先做几道各种难度的题目,然后发现 1500 比较适合我,于是我就做难度 1500 的题目了。

2019 年 3 月 ~ 2019 年 5 月

2019 年 3 月 2 日,那是我第一次进入 lhj 老师的课,当时 lhj 老师讲的第一道题是没有上司的舞会,我还记得我在以前做到过这道题,但是以前我不会做,通过老师的讲解之后我终于会做了。那节课,老师还讲了封锁阳光大学

当时 lb 老师的课还没完全停掉,课上在讲图论,于是当时就做了许多关于图论的题目了,后来 lhj 老师也开始教图论了,于是老师带着我做了一遍最短路的模板题,然后做了一堆图论的题目。

学了一会儿图论之后,又学了一些其它内容,lhj 老师上课讲的细胞分裂我花了 3 天才做完

在这里插入图片描述
接下来,lhj 老师开启了全新的一章——数论,我们在学完质数、约数和欧拉函数之后做了许多蓝题,可能是我做的第一道蓝题,包括公约数的和等。

数论的难度对当时的我来说是很大的,2019 年 5 月 ~ 6 月那段时间,老师先后教了我们

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WebSocket是一种用于实现双向通信的协议。在前端开发中,有多种库可供使用,其中包括Socket.IO和原生WebSocket。 Socket.IO是一个流行的库,提供了更多功能和灵活性,但是它不仅仅使用WebSocket。它还可以使用其他传输方式,例如轮询和长轮询,以确保在不同浏览器和服务器之间的兼容性。 因此,如果你在前端使用了Socket.IO,但后端并没有使用Socket.IO库来处理WebSocket通信,那么就无法连接到后端的WebSocket。 相比之下,原生WebSocket是浏览器内置的标准API,只支持WebSocket协议。它提供了更直接的方式与服务器进行双向通信,且更容易理解和使用。 如果你使用原生WebSocket,就不会遇到与Socket.IO不兼容的问题。 所以,如果你在使用WebSocket时遇到连接问题,首先要确认前后端是否使用了相同的库或标准。如果你在前端使用了Socket.IO,那么后端也需要使用Socket.IO来处理WebSocket通信。如果你想简化通信过程,也可以考虑使用原生WebSocket来与后端进行通信。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [socket.io-client报404错误爬坑与自己封装websocket](https://blog.csdn.net/RkHker/article/details/112547414)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [websocket.io用法](https://blog.csdn.net/YangMo_/article/details/109325832)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值