六安童程在线少儿编程培训

试听课 + 活动课
填写信息优先获取试听课

位置:学校首页 > 学校动态>信息学竞赛考什么

信息学竞赛考什么

  童程在线是美国纳斯达克上市的达内教育集团旗下产品,专注于7-15岁少儿编程教育,17年编程教育经验沉淀,形成了Scratch启蒙编程,Python人工智能编程,NOIP信息学奥赛编程等核心课程,从低龄孩子的图形化编程到适合大年龄段孩子的代码编程课程全覆盖,助力孩子从到精通,终成为信奥特长生助力。现在来电或咨询即可0元预约少儿编程试听课程,期待您的咨询与来电。学习电脑编程目前已经不再陌生,因为这对于孩子的脑部发育以及思维逻辑培养有好处。因为少儿编程和成年人的编程工作有很多不同,这就让很多家长在鼓励孩子学习的时候也会不知道该如何帮助孩子,接下来就来说说哪些细节利于孩子的思维。


  信息学竞赛的笔试

  信息学竞赛无论普及组还是提高组,初赛的形式是笔试,在固定的时间内完成一份试卷,原则上不允许使用计算器但是因考场而异(信息学竞赛比赛流程管理混乱不是一日两日的事情了)。批改是按照市级赛区统一批改然后统一划线决定复赛名单(当然也有城市是将参赛名额分到学校,学校校内进行批改决定名额,虽然这么做是违规的)。

  信息学竞赛除了初赛是笔试以外,NOI全国决赛也有100分的笔试环节,全部都是选择题。不过这个题库是提前公布的,选手可以记忆题目通过笔试,所以如果不是因为个别选手手滑太严重,这一部分并不会有什么区分度。

  信息学竞赛的上机测试

  复赛、省选以及冬令营、APIO、CTSC等竞赛,以及NOI的主要比赛,都是上机测试,上机测试是信息学竞赛的重头戏,能直接决定你能获得什么奖。根据比赛的不同,每场上机测试3-5小时,需要完成3-4个题目。NOIP提高组、NOI和某些省选会分2天进行两次上机测试。

  上机测试的题型有多种形式,但是无论是什么形式,本质上都是要求你编写程序,可以将给定的输入数据按照题目要求处理成符合要求的输出。

  较常见的试题形式叫做“传统题”。传统题是指给你一个题目描述、输入输出格式、输入输出样例(有时会给你样例解释帮助你更好的理解题意)以及数据范围,你需要根据这些信息编写出一个程序,能够将给定的输入进行处理,然后输出答案。这边是一个例子(洛谷P1001

A+B problem):

  选手按照要求编写完程序后需要自己进行测试、增加程序符合题目要求。赛后统一提交并进行评测。出题人会生成构造多组测试数据,向选手编写的程序编译后的可执行文件输入,得到的选手输出和标准输出进行比对;如果选手输出和标准输出一致(或者通过特殊判断认为选手输出是合法的)就能够获得这部分的分数。如果输出了错误的答案或者运行时间过久、运行时错误等问题则不能得分。

  在省选或者更别的竞赛中还会有“提交答案题”。依然会给你一个题目描述,并且给你所有的输入文件。你可以根据不同的输入文件特性来编写相应的程序来处理,甚至不编写程序通过人工方式进行处理(仅限输入规模不大的情况,俗称“手玩”),反正只要你给出一个处理后的答案并且提交就行了。一般来说提交的答案是不的,而且答案可能有优劣之分,的答案会获得。这种题目每次比赛较多也就出现一次,而且可能还不一定出。

  前几年的NOI还会出现一种叫做“交互题”的题型。交互题是给你一个库,要求你编写程序调用这些库,根据库返回的信息进行处理,然后再给这些库返回结果。这种题型现在已经很久没有在国内大赛出现过了。

  各种比赛的评测方法也会有一些区别。NOIP、NOI和多数省选是离线测试,选手需要编写程序,等待比赛结束后统一收取程序,然后统一评测给出结果。而APIO和IOI是在线评测,也就是说选手写完程序后就可以立刻提交评测并且获得结果。

  在信息学竞赛中,出题人往往会在每个题目中分配子任务。通俗来说,对于一道题目,选手可以比较容易的写出一种“比较差的方法”,而水平更高的选手可以写出“比较好的算法”而获得更数。区分“算法好坏”的标准就是是否能够通过更多的子任务,这就增加了竞赛难度有一定的区分度。国内的比赛多按测试点给分,但是APIO和很多国外的信息学竞赛会进行捆绑测试,也就是说一个子任务中的一组测试点全部正确才能获得这个子任务的分数。但是据说现行的比赛的形式也有这个方向发展的趋势。

  一言以蔽之,选手需要根据题目要求完成程序,这些程序有优劣之分,根据通过的测试点分数来区分程序的质量,从而区分出选手的水平。

  信息学竞赛的语言

  说到编程,很多人就会想出Java、C++、Python、PHP等常见的工程语言(下图给出了工程中靠前的语言)。但是实际上在信息学竞赛中,并不能使用所有的语言。现在(2018年)国内的信息学竞赛只能使用C语言、C++和Pascal。早期的信息学竞赛还能使用BASIC。但是因为一些原因,从2022年开始NOIP将不再允许使用Pascal和C语言。

  而在国外以及IOI可能还能使用Java等语言,至于国内是否能够解禁新的语言现在不知道。所以说想用Python来参加信息学竞赛的话可能就会让你失望啦。因此如果想问需要学习什么语言,那么的标准答案就是:C++。

  但是,语言之间并不是互斥的。很多选手能够掌握两门甚至更多种类的语言;实际上只要学好其中一门语言,在学习新的语言就会容易很多。即使初期可能会有一些混淆的习惯但是并不用太担心,写多了后自然就能信手拈来。

  说到底,在信息学竞赛中,语言本身只是为了解决算法问题而使用的工具,即使是我们钦点的C++,实际上我们能用到的语言特性也只是C++中的一部分(我们经常笑称我们学的实际上是C with STL)。所以我们需要学习C++语言,但是我们并不需要精通它(实际上也做不到)。因此学习算法竞赛的错误入门姿势是阅读砖头厚的《C++ Primer Plus》等大而全的书籍,因为我们只需要学习较基础的一些语言特性就足以使用了。

领取试听课
温馨提示:为不影响您的学业,来校区前请先电话或QQ咨询,方便我校安排相关的专业老师为您解答
版权所有:搜学搜课(www.soxsok.com) 技术支持:搜学搜课网