现在已经初二了。经历了编程的汪洋大海也近似有个四五年了。
学编程是永无止境的,就像所有事物的学习过程一样。但是,学编程和学习同样也是要分阶段的,每个阶段的间隔、时长和任务都不经相同。
现在,已经到了一个新旧阶段交替的时刻。新的高中编程之旅未始,旧的编程之涯已末。身处此时,只能写写文章,怀念总结一下。
学编程这个事情,并不是一蹴而就的,望着奖项,才为之付出,是收获不了什么呢。是有热爱,才能收获芳甜。
此话不假。身边就有这样的同学,父母想着催着,可学生推着拦着,自然最后竹篮打水一场空,还让这已经稀稀疏疏的竹篮子破了几个洞。
不过,这也并不是绝对的,也有很多刚开始是为了奖项而来,可是越到后来,就愈发的乐在其中也,最后在恍惚间,就赢得了最后的果实。
或许当你爱上编程的时候,就像爱上学习一样,其中所有的苦都转换成了乐——至少也是一种中性的情感。所以,这也就是为什么有许多人认为学编程很苦,还有很多人认为学编程非常享受的秘密所在。
其实,这些发散到许多问题上都是这样的。不喜欢和喜欢似乎就是-1和1的区别,可两者相差不多,又相差甚远,在漫长岁月的磨砺下,不喜欢和喜欢的最终效果,必定是似分道扬镳般极速拉大。
再说说学习编程路上的比赛吧。先说说上机测试。这里先说一个比较重要的,就是整体应该是一个什么样的心态。
其实,信息学比赛是最近体现和训练考试策略的。4道题目,400分,你从来都拿不到满分,但是从来一等奖也就只有200出头。
我们在平时做题目的时候,从来都是满分为目的,多次提交为手段,查询测试点为辅助,询问同学为下策的思路来答题的。这样的训练方式自然是没有问题的。作为一种训练的方式,它可以大大的提高我们解决问题的宽度和编写代码的毅力。但是同时,这样的写题方法,同样也需要耗非常久的时间。这也就是编程课为什么都那么长,最后还看似没有做几道题目的缘故。
但是到了考场上,情况就不大一样了。并不是比较谁得得满分多,而是比较谁的总分多。这有点像买东西,这个时候购买性价比最高的物品时最划算的。用相同的时间,谁能换到最高的分,谁就赢了。当然,这里面有很大的一部分因素取决于自身的实力和能力。但是同时,我也见到过不少能力非常强,区赛可以AK的选手却因为一两道题目的卡壳或者难度的调整而手忙脚乱,措不及防,最后功亏一篑。
什么叫做难度的调整?就是一般来说,一二题较为简单,第三题打模拟,第四题大图论(Csp)但是,有些年份,可能第二题和第四题的难度互换。这些时候其实是十分崩溃的,必须要及时调整过来。否则就因为这一题而耽误了时间。
再说一说每一道题目的做法,以及写完题目后的注意事项
前文刚刚提到了时间,那就以时间为引子聊一聊吧。时间在信息学比赛中似乎都比在别的地方长。在外人开来,着似乎是非常离谱的考试时长,可是我们常常却会感叹考试的时间不够用。
不够用的这种情况人人皆有。否则,在时间充足的情况下,大家都死钻研。其实人人得到300分还是不成大问题的。可是,如何在时间不是特别够用的180分钟后,拿到最多的分数,才是我们要关注的。
第一题在15分钟内写完,一般都不是非常的难,秒杀级别的。
第二题在40分钟内如果想不到最优的思路、满分的写法,一定要先放弃!一定要先放弃!有很多时候,你都会在之后为自己在第二题上花了太多的时间而后悔。尤其是为了10分20分的测试点计较,而错失大局。
第三题普遍为模拟题。当然,我这里说的是csp,还有一些地方性比赛类似于科普日的活动就不太符合这个规律了。但是不管怎么说,模拟题都一定要了解明白题目的意思,并且把所有在计算能力范围之内的样例手动计算一遍(电脑自带计算机)。一来是对题目意思理解是否正确的一种验证,二来也是一种为模拟写代码的准备。
这种题目在写完代码过后,一定要反复检查有没有思想上的漏洞,活着自己制造一些边界一些的样例去实验,否则很容易崩。如果在有模拟题的考试中,一般来说这道模拟题你写对了,其他题目随便骗骗分就稳了。
写这种题目的时候就不是特别需要关注时间了。
当然,有些题目考的第三题和第四题一样,都是一些看不懂的、在考场上明显拿不到满分的题目/这个时候就果断看数据范围,看看有什么特殊的性质根据特殊数据拿分。不要想一些歪门邪道的,这就是最快速的方法。能骗多少分就骗多少分,就可以了。
最后如果还有时间。第二题还没有研究出来,就再看看第二题。
最后最重要的一点,就是不管代码写成什么样,一定要预留20分种的时间给自己预留后路。考试只有30分钟的时候,没写完的题目就可以收尾,即是知道满分的思路,如果代码量非常大的话也就骗分,不要做烂尾工程!有可能骗分可以得到30-40分,结果烂尾工程一分不得。
考试的准考证号、文件夹和文件读写在最后一定要仔细检查!并且再次尝试一下所有的样例,确保没有输出一些自己调试的时候用的奇奇怪怪的东西。否则,爆零的感觉并不是很好的。
虽然说写的时候就要关注到,但是最后检查的时候还是强烈建议看一下题目的数据范围。一定要计算在代码的过程中会不会有超过int
范围的步骤。即有可能输入的时候没有超过int
,但是一顿操作后就超过了!如果有条件的话,也可以选择全部都开long long
,当然,要确保不会超过内存限制。另外,明显没有必要的,也不需要刻意而为。
然后再聊一聊计算机的笔试吧。
其实刚开始是被笔试折磨了好久的,但是其实道后来你就会发现,本质上考的就是你的数学逻辑思维,和对程序的解读能力,计算能力。
我一直有一种想法,不知道正确与否。就是ccf在该省内没有那么多计算机。对呀,每年报考的人数那么多,关键里面还有很多都是陪考的。他们或许都没有怎么考,就是被报上来的。国家政策鼓励啊,学校必须要报,那就必定有学生来。你说这些学生到考场上,站着机位,也写不出来几个分,还拉低平均分。
还有一种情况,就是还没有学习几年,也不认为自己可以得到奖项,但是就是去试试的,体验一下。就像高二的时候去体验高考一样,一个道理。这种群体一样的,虽然学了,但是并不多。
这就造成了考试的人数众多。而信息学考试还非常的特殊,它的考试成本非常大。必须要人手一个电脑,三个小时,这电脑配置还得好。你说平时老师办公室或者教室里面那种两三下就卡的,都不行。我们每次考试都是去老师阅卷的地方考的,那种电脑才可以。那你说一个学校里面会有多少像这样的考场?所以,才需要准备一个初赛,先刷掉一部分人。
这个就是我隐隐约约的,一直认为的初赛的真正目的。可是不管怎么说,我们现在都只有好好的考初赛,才可以通过,参加复赛。
初赛的内容无非就是一些基本的常识。中缀表达式那一块会考,然后就是一些数学的题目。这里说它是数学的题目,是因为它是不过是把一些数学问题用计算机的语言表达了出来,或者将其塑造成了别的样子,仅此而已。虽然说也比较麻烦,但是稍微学习、经过训练后就可以。
网上也有很多江浙的名师,就是讲初赛的,把里面的课全部刷一遍,也就差不多了。分数线非常低的,基本上都还是可以的。
说完这些,我在说一说考试前的注意事项吧。
其实要注意的并没有什么,就是要保护好身体。
不知道为什么,感觉每次比赛都是在季节交替的时候,反正我是经常在这个时候生病,然后他啪搞一个比赛。我有两次市赛都是这样——感冒了。把身体养好,就可以了。
报名的时候一定要提前报名,因为还有重重的审核。一般来说,还要找一下校内的老师。至于六升七的,则一定要在开学过后尽快联系各个班级的信息学老师。
顺便吐槽一下,信息学的比赛还要收费,关键是钱还不少,两三百大洋。我的天呐,有这个钱都快了一购买一年的服务器了。
得奖之后其实也就比较轻松了,没有什么压力了。每年都有很多初二初三的学生参加比赛。他们已经并不是为了单纯的拿到奖项了,因为他们已经拿到奖项了,也已经符合当地高中科技类特长生的资格了,只不过是某一个奖项没有拿到一等奖就心有不甘,或者单纯的想要参加,用原话就是「参加玩一玩,就是玩」
别问我为什么知道,因为我就是这样的。已经是可以特长生了,但是还是参加了比赛。就是怀念一下,参加一些,图一乐,享受一下。
顺便考试的时候,还可以到高中里面走一走,看一看。一般来说,考试的时候,都会选择当地最好的高中。反正我每年考试的时候,都是在我们当地的第一中学。
其实讲了这么多,都是一些比赛当中要注意的事项之类的,这也都是学习了这么多年的沉淀所在,我想,这些东西运用到中考、高考上面也是一样的,中考、高考的时候也不能因为一两道题目而影响心情,要从全局考虑,顾全大局;要关注细节,要细心……
我想,学一份编程,获万年成功!在其中,能得到很多、很多……
本文作者:Owenzjg
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!