前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我是个中年人,我与小学生巨佬们同台竞技

我是个中年人,我与小学生巨佬们同台竞技

作者头像
海天一树
发布2019-12-18 10:23:16
5690
发布2019-12-18 10:23:16
举报
文章被收录于专栏:海天一树海天一树

(0)报名篇

去年国庆,我感受到命运的召唤,开始专门研究信息学竞赛。

到了今年八月底,NOIP改革成CSP-J/S,不再限制只有学生才能参赛。

那个时候我没有想过要不要去参加。近一年来,我主要的精力都用在了小学信奥教学方案的探索上。信奥里的不少知识点挺难的,比如图论、动态规划之类,更何况如果要向四年级的小学生解释这些知识点,需要花很多的时间来钻研。

到了九月底的时候,发生了两件事,第一是我终于把整个教学体系设计得差不多了,第二是我看到朋友圈里有一对父子一起去报考CSP-J。这个时候离报名截止时间很近了。我就在犹豫要不要也去参加认证。后来想到了一点,就非去不可了--CSP-JS考试环境跟其他的比赛环境差别比较大,经常有人问我考试环境。我之前是根据相关的文档来推测整个考试环境的,虽说也能推测个八九不离十,但是如果能实地体验一次的话,那么我就会有最直接的现场经验。

报名后,最大的问题就出现了:题我不会做。我虽然天天接触信奥,但是研究“教”跟研究“做题”差别很大,虽然两者也有关系。我的做题量很少,有些简单的题我也不一定能做出来。虽然我有办法向很小的小学生解释较复杂的问题,但那是因为我提前花了很多时间做了分析。

有些人懂得很多,但没办法表达出来,而有些人懂多少就能讲多少。会做不等于会讲,会讲也不等于当场能做出来。

初赛最好的复习方法当然是做近十年的真题。那些真题先前我已经做过一遍了。我当时的计划是再做一遍。不过等到考试时,并没有实现这一目标。

(1)初赛篇

初赛时我碰到了两位认识的小朋友,他们跟我在同一间教室。真是缘分。

监考老师有俩,一老一中年,看起来都比较面善。

初赛是机考。考试的页面有点卡,但对做题影响不大。

考到一半的时候,有个子很小的小朋友(应该是小学生),突然问老师能不能用DevC++编译器。这个时候我已经用了老长时间的编译器了,计算器也使用了多次。并且我早注意到,身边的多数小朋友早打开了编译器。小朋友这么问是可能是因为胆子比较小。俩监考老师面面相觑,问小朋友啥编译器,显然两位老师都不是信息老师。我说规则上没规定不能使用,就表示可以用。很多小朋友附和说对啊对啊可以用可以用。老教师说既然如此,那就用吧。然后那个中年教师出去问了人,回来跟大家说再强调一次可以使用。

考完之后,我才听群里的人说,有些考场不允许使用编译器。估计是有些监考老师不懂,又怕承担什么责任,所以就不让用了。

对于能力很强或很弱的选手来说,用不用编译器,差别不大。但对于多数人来说,用编译器比不用编译器,还是有优势的,比如变幻矩阵那题,我大体上知道该选哪些答案,然后把程序复制后往编译器里粘贴,把答案一填,运行一下,立马就知道自己肯定都选对了。其他一些不会的题,即使把代码都复制到编译器里,我还是不知道填什么答案。有人说可以把答案挨个枚举一遍,事实上这是不太可能的。比如最后一道题有五个空,每空四个答案,需要尝试4^5 = 625次。等你尝试完,早就收卷了。有人可能会认为假如三题会做两题不会做,这样只要尝试4^2 = 16次就可以了,但我觉得编程题恐怕不容易出现这种情况,编程题更常见的是基本都会或基本都不会。

五道大题里,有两题我会,有两题不会。还有一题大体上看得懂。压轴题考二维数据的计数排序,几个月之前我还给小朋友分析过一维数据的计数排序。但是考试的时候,我惊讶地发现我把计数排序的思想忘得一干二净了,就记住了“计数排序”这个名词本身。

前面选择题也有一些不会做的。考完后我估摸着自己能超过65分。同时我根据去年的初赛情况估算今年的初赛分数线不会超过60。

过了几天我再次做初赛题的时候,发现了一个神奇的现象,有些题我在考场上,无论如何都想不出来,但是重新做的时候竟然能秒懂。我推测这是因为不同环境导致的结果。

隔了几天出了成绩,我发现自己竟然有80多分。比我估算的多出不少。我推测是跟平时深入钻研每一个知识点有关系。类似于语文或英语中的“语感“,编程可能也有“程序感“,”程序感“助我靠近正确答案远离错误答案。

(2)复赛篇

初赛之后,我没能立马准备复赛。因为我需要解析初赛试题。在我所做的所有事中,这事是最耗时的。因为我的目标是把所有的知识点都解析到四年级的小学生都能明白的程度。这花了我整整一个礼拜的时间。然后再处理一些其他的杂事,又是一个礼拜。

这时我考虑要准备一下复赛了。我清点了一下之前做过的题,除了做过近年北京市的一些小学生的比赛题外,我在洛谷上只做了50题。这个量太少了。半年前有一个小学生巨佬做了五百多道。

学信奥的第一条原则,不能做题太少;第二条原则,不能漫无目的搞题海战术;第三条原则,等我想到了再告诉你。

最后两周陆陆续续做了一些题,到了考试前,洛谷上做了65题。

复赛是在一个中学的图书馆,场地比较宽敞,分为三个区。有好多位监考老师。

第一题非常简单,比去年的第一题要简单,多数人在10分钟内就能做完。第二题刚开始看觉得不难,但后来做起来发现不简单,是一个比较复杂的模拟题,需要用到队列结构。难度跟2012年的第二题“寻宝”差不多。我本想用一下标准模板库中的队列,不幸的是没成功,后来改用vector,不幸的是有个方法名称记不住了。最后我只能用数组模拟了一个类似队列的东西,才通过了测试样例。做完之后发现时间已过去两个小时半了。这时我切身体验到做题少的劣势了--会导致做题又错又慢。后面两题我在考前就预期做不出来,尽管平时我有办法让小朋友清晰地理解历年的后两题,但是我自己经常不会做,或者没办法在短时间内做出来。我做了一会儿没做出来,就放弃了,有一些测试点如果深入思考有可能可以通过测试,但这对我来说也没什么意义。第三题有两个测试数据是能一眼看出结果的,我顺便写了一下。然后我又花了很多时间验证第二题。

在做题的过程中,我无意中用鼠标碰到了桌面的顶部,感觉到上面有东西,点击了一下,VMware的工具栏出来了!这时我才明白,原来系统不是直接装在硬盘上的,是通过VMware虚拟机安装的。我将虚拟机缩小一部分,立马看到了Windows系统和DevC++。这是个不小的发现。我从来没听人说过考场里用的是虚拟机,估计很多人都不知道。考后几天我和一些小朋友讨论起这事,他们不知道有虚拟机的存在。

到了结束的时间点,监考老师让大家把手放下,不允许再触碰鼠标和键盘。我旁边一个小女孩,估计是小学生,很遗憾地跟我说最后修改的一小点东西没能保存下来。然后就是等待收代码。有不少考生在聊天。

考试的过程中,发了一张纸,上面要写明哪些题的代码提交了哪些题的代码没有提交,并且需要要签字。考试结束时,监考老师叫考生挨个到收代码的电脑前看自己的代码提交的对不对,并上缴签名的那张纸。在叫我之前,我注意到有个监考老师挨个电脑收考生代码,具体是把代码从NOILinux系统拉到Windows系统里,再从Windows系统里把考生的代码传到收集代码的那台电脑里,这也是个不小的发现,之前从来没听说过是这个流程。

我走到楼下的时候,有个监考老师快速跑下来,叫住了我前面的一个小女孩,说她的文件夹位置错误。看样子是叫她回去改文件夹位置了。这个老师挺好的,如果文件夹位置没改正确,就是0分。每次考试都有些考生因为文件夹名称或位置错误而得0分,这真是令人遗憾。

(3)赛后篇

考完之后我听说今年的普及比去年的简单。我因为后两题不会做,没看出最后两题的难度。过了几天我又找时间做后两题,每道花了半天的时间才做出来。这时我才发现,确实是今年的题比去年的简单。第三题看起来比第四题要难一些,但是感觉难度区分度不够大。以前多数年份,四题之间的难度是直线上升的。

不久就出现了几个可以估分的平台,我在两个平台上估算了一下,比我在考场里当场估算的都要高上那么一点。后来实际分数出来的时候,我发现我的分数跟我考场里估算的分数是完全一样的。同时发现少数人的实际分数比估分高,多数人的实际分数比估分低,有些人甚至低大几十分的。这是因为估分平台的数据不如官方数据严格。

12月9日出了分数线,我刚刚好过了线。这有很大的运气成分。这次的第二题是恰巧碰到我会做的类型,加上我反复计算和验证才做对。如果换种题型我不会做也很正常。做题少是不可能取得好成绩的。我所知道的所有算法强的人,做过的题都是非常多的。

最初我参加这次认证考试,主要是为了知道整个考试流程,现在看来,我获得的收获远不止于此。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信息学竞赛NOIP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档