Goodbye 2018
本来想在2018年12月31日的夜里面再写这一篇的,但是可巧今个周末要写一篇叫做“路”的随笔,写完后有感而发,写下这篇文章。
里面的一些简写:bcb—编程班 OJ—Online Judge AC—Accepted WA—Wrong Answer TLE-Time Limit Exceed MLE—Memory Limit Exceed CE—Compile Error
想起来,走上OI这条路,应该是三年前的事情了吧。
初一
上
小学时期毕竟是县区里面,见识太少,就没有听说过“编程”这个词。小升初暑假后期才听说开明有一个叫做“编程班”的东西,但是又打听到开明编程班是在考完当时的连续的三场考试不久就应该报名的,也没怎么放在心上(还是继续那个难得的暑假里面到处玩,听说现在的bcb已经是从那个暑假就开始训练的了)。
但是开学以后,当时学校要求初一的两个创新班统一学习编程,所以在大概是第一次期中考试前后,就开始在信息课上一起学C++。本来也没太关心,只是把这个当做信息课的一部分来上。(因为我们县里面的小学基本上都没怎么上过信息课,所以能上就已经很感动了)
后来一直到大概已经开始学运算符与输入输出的时候,某天中午没有作业实在闲的无聊,把当时统一买的教材拿过来翻翻,看看上面的注解,发现自己竟然有点理解当时“Hello, World!”的程序的时候,才开始感受到这个东西的神奇。然后大概就是这个时候感受到编程这个东西的神奇,也大概是这个时候开始有点喜欢编程。
然后就开始没事的时候就把教材拿过来看一看,把上面的题目写一写。一开始写的不太熟,一个七八行的程序要写十分钟左右,而且小学也没怎么碰过电脑(大概也是因为这个吧,嗯小学时候的视力非常不错),打字都不太熟,也导致现在连打字的指法都不会。后来渐渐写熟了,打字也变快了,但是指法还是不会。然后把之前欠的题目都写完了以后,就开始预习后面的东西——大概在同学们在上条件语句的时候,已经预习到了循环结束,他们在学循环的时候我已经开始看数组,他们上数组时我大概再看函数和递归……
但是也不知道自己写的程序对不对,所以有一次把写的程序在十点多的时候发给了陆老师,里面有一个输入月份输出天数的程序,我当时加了一个输入月份以判断是不是闰年,但是为了判断和用switch
语句判月份写的比较繁琐,所以第二天陆老师让同学们一起来一个判断闰年的程序,我想到了可以用||
和&&
语句结合起来只要一句话就可以判断,于是立刻写了一个交了上去。当时发程序的时候没写我名字,但是陆老师表扬“这个平时在坚持练习变成的同学”,心里面特别高兴。
不过当时也还是没怎么把编程放在心上,只是因为我不太喜欢玩游戏,所以空闲时间才来编程,平时还是以学文化课为主,发誓要在期末考试一雪期中考试的耻辱。
下
寒假里只用了两天时间就把陆老师布置的所有寒假作业都做完了。
但是当时对程序的时间限制、空间限制、复杂度……这些东西都是一无所知,所以有几道题目现在回看起来,写的都是过不去的,其他题目大概也应该有一些细节错误吧。
而且当时甚至不知道陆老师一直跟我们说的“测试”的评判标准是用很多个测试点来输入进去,比较程序输出与标准输出,而是以为像别的考试一样评卷人打开程序看看你写的是什么,所以到处在程序里面输出“Please input the number of the apples:”
或者写上cout<<“The maximum of this sequence is ”<<ans<< "."<<endl;
的话。
然后开学以后要组成正式的编程班了,进行了一场考试以从创新班中每个班选出20个人参加bcb。
是一次考试的时候陆老师送来了名单,然后考完试以后我们就去机房集合,还把我之前的一个用来做纯粹的兴趣小组用的qq群贡献出去作为bcb的群。记得当时也就以为是为这个团体第一次做了点事情,高兴得晚上睡不着。
然候有认识了Open judge这样OJ可以提交程序,以第一次认识到Accepted
Wrong Answer
Runtime Error
Time Limit Exceed
Compile Error
这些东西,也了解到并不是程序写出来了就算是解决了一道题目。
我记得我当时英语不太好,一直到夏令营之前,都以为Runtime Error
是超时的意思,还是夏令营的时候记不得是wph学长还是lzh学长问我这个是什么意思,然后我坦率地说了一句“超时”,但是他却发现还有一个叫做Time Limit Exceed
的东西。
但是初一下学期也还是依然不知道编程这东西到底有什么用,仍然不知道还有一个叫做NOIP的东西。(了解这个应该还是夏令营的时候了)
所以也还是没有把这东西放在心上,平时做些题的唯一动机也还是因为喜欢,所以也没有怎么认真的练,这或许也是导致现在和thx,wph,zby这些学长以及全国以内广大的OIer那么大差距的一个原因吧。
这一个学期,大概是学了一些排序、栈和队列以及宽搜深搜这些。
初一时候,相比于编程,我反倒是更热心于班级里面的事情,在图书角搞了一堆活动,还办了一个短命的星迹月刊。
一直到学期快要结束,才知道省里面有一个夏令营,就去报名了。陆老师说要让我报普及组一班,跟学长们报一个层次的班级。当时也没有多想,但是现在看起来是多么傻,能够跟学长们多交谈却没有好好珍惜。
但是又说学校名额不够,所以进行了一场选拔考试。我在初一 一直有个坏习惯,就是不信任题面,基本上开的数组的范围都是瞎打了,普遍比要求的数据范围大上十倍二十倍。然后大概六道题有三道题MLE,导致白白丢了一百多分。而且对题目细节也不太关心,甚至说出“我样例都过了怎么会错呢?”这样的傻话。所以这场考试只有30分,这大概是我初中以来第一次打击吧。感觉自己去不了夏令营了,当晚给陆老师发qq求助但是陆老师,后来陆老师也还是有要了一些名额,所以终于还是去了夏令营。
在夏令营里面认识到有NOIP这样的东西,而且还见了世面,了解到一些更多的知识,也认识了一些上一届的学长。记得但是夏令营最后考试的时候,wph学长偷偷教我打了T4的两个表,然后好像都打中了qwq。
唯一的问题就是没有主动和更多的学长交流,以至于失去了很多机会。记得最后一天听课的时候,thx学长好想就坐我旁边,但是我初一的时候一直不太敢和别人交流,所以甚至没敢说一句话,白白失去了那么好的机会。所幸最后在回程的车上,有幸和张坤学长交流,了解到了一些关于输入输出和码风的问题,以及应该怎么学OI的话。
但是因为我在夏令营最后考试的成绩还不错,暑假的做题也放松了不少,少做了很多题目,这可能也是间接导致了NOIP2016的惨败吧
初二
原文地址:https://www.cnblogs.com/hankeke/p/goodbye2018.html