从OI谈起

提到OI,也许很多人并不清楚这是怎么一回事。对于在学校就学习过数学、物理、化学和生物的同学们来说,“国际五项学科奥林匹克竞赛”中的这四门是相当熟悉了(相对OI来说)。而OI/信竞/计算机竞赛又是什么?听名字跟计算机有关,他们不会是修电脑的吧!

OI,全称Olympiad in Informatics,指的是"信息学奥林匹克竞赛",是一项在中学生中广泛开展的一门学科竞赛,和物理、数学等竞赛性质相同。OI不考修电脑,不考ps不考使用ppt制作文档编辑……(当然顺便学一下LaTeX还是很资瓷的_(:з」∠)_)。实际上,OI考察的内容是通过编写计算机程序,运用算法和数据结构知识,解决一些实际问题。

差不多是这种“实际”问题

可见,OI题目的实际考察内容还是知识本身,正如理化生竞赛要考察大学知识一样,OI的主要内容同样是大学中的有关内容(中学有什么算法知识吗[捂脸])。相对来说,OI对于编程语言本身的掌握要求就很浅。总的来说,OI的题目更偏重理论和数学层面。

OI竞赛的形式也独树一帜,你需要根据题目的要求写一段程序,评测并不是有人盯着代码一行一行看,而是采用黑箱测试,共有多组数据,每组输入数据后只要在规定时间内输出正确结果就算通过,最后根据所有数据的情况确定分数,可以说没有任何主观因素的影响。

THE SECOND

关于OI的特点

OI有很多比赛,其中较关键的两项为全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces,简称NOIP、联赛)和全国青少年信息学奥林匹克竞赛(National Olympiad in Informatics简称NOI、竞赛)。NOIP相当于省赛,由全国统一命题,各省自定分数线;NOI则是全国赛,会分出金银铜牌和集训队

OI作为编程竞赛,自然对编程能力有着一定的要求,但这并不是什么很高的门槛。对于初学者来说主要有两大难题:一是编程思维,二是经验与习惯问题,这都是可以通过做题解决的,毕竟OI又不是工程开发。除去写代码的部分,OI与数竞有很多相似之处(因此同时搞数竞和OI也是可以相互促进的选择)。OI的知识点不多,更多考察的是掌握理解、问题分析,甚至是临场应变的能力。某位老师曾说过:“竞赛是智者的游戏。”但其实在OI中,除去少部分智商碾压的大牛,通过勤奋积极而有效的学习同样可以取得理想的成绩。

NOI系列赛事是在激烈的高考竞争下升学的一条捷径。如果在清北的冬/夏令营中发挥不错或NOI等比赛中取得较好的成绩,就可以拿到相应的降分。在NOI中拿到银牌,就可以签到复交等学校的一本线。即使重心不放在OI上,拿到NOIP省一的性价比也是很高的,毕竟省一是诸多学校自招的敲门砖,而双省一的价值也远远超出单科省一,而目前在本省拿到OI省一的难度是远小于别的竞赛的。

某位不愿透露姓名的hzy学长就曾经在拿下OI省一之后顺便进了个CPhO国家集训队

参与OI不仅能为升学助力,还能极大地提升计算机水平。也许之前你是一个电脑小白,但在经过OI的学习后,你也许已经对计算机的原理有所了解,你也可能熟练地掌握编程技能,你以后还可以在大学的相关课程上刷分。毕竟在现在,编程是几乎很多学科都绕不过去、离不开的。如果你打算进入EECS方向学习,OI基础更会让你受益匪浅。而且,OI中锻炼的严谨的逻辑思维能力无论在高考、竞赛还是在日后的学习中都相当重要。

THE THIRD

关于OIer的能力

学习OI的过程,除了具体知识点,就是一个不断做题的过程,从在线题库、模拟赛到真正的比赛,你将一直和题打交道。但学习计算机竞赛也是一种“应试教育”,毕竟大家直接的目的还是在赛场上考到高分,而临场发挥是相当重要的。因此,OI需要重点练习三个方面:

1. 对知识的掌握和对题目的分析能力。OI涉及到许多种算法和数据结构,理解其原理、实现和有关技巧是每名OIer的基本功。但是OI赛场上极少出现“裸题”,也就是直接使用某种方法就能做出的题,更多的题需要深刻的理解和巧妙的思路,运用某些算法和数据结构作为工具来完成。如果你没有超高的智商,那么不得不说这是离不开大量的刷题的,有了大量的做题经验后,一来你对很多算法的理解更深刻了,二来你解构题目运用算法的能力也会更强。

2. 代码能力。代码能力说白了就是把想法实现为具体代码的能力。代码能力的强弱直接制约着一名选手的水平,因为OI比赛中时间是非常宝贵的。提升代码能力同样没有什么捷径,只有不断去写一些看似很麻烦的题才能逐渐提高。

3. 临场发挥的能力。OI的赛制为每场5个小时(NOIP为3个半小时),3道题,每道题根据不同的做法有不同的部分分,NOI、NOIP均为2场(冬令营、APIO等为1场),最终计算总分。每一道题都要经过读题,想做法,代码实现,调试和最终的对拍,由于分数高的做法较为困难,每道题往往还要写n>=2种做法用来保底。因此看上去漫长的5(3.5)个小时其实是不太够用的。如何分配时间、高效地测试,都要在一场场的模拟赛中逐渐掌握。

THE FOURTH

几条建议

上面已经很多次提到,学习OI没有什么捷径,但是却有可能绕弯路。投入大量时间、精力却收不到成效,的确是一件很让人苦恼的问题。因此,这里有几条小小的建议:

1.一定要高效地做题。高效不是指速度快,而是指有收获,比如做完这道题能让我熟悉这个算法的模板,或者能让我有一些新的思路,或者能提升代码能力。总之一句话,不做无意义的题。

2.正视模拟赛,把每一场模拟赛当作正式比赛来打。这不是什么态度问题,而是真的只有这样才能锻炼自己分配时间、写部分分、对拍等能力。

3.学会调整心态。在赛场外,你可能因为训练影响文化课学习而焦虑,可能为怎么努力也赶不上一些大神而苦恼。在赛场内,你也可能因为一两道题导致心态爆炸,比赛崩盘。不是一切都会顺利,你需要一颗大心脏。

4.及时确立高中规划。具体到OI上,就是要不要把重心放在OI上,要不要停课,什么时候停。这需要你对自身的实力有着清晰的了解。切忌两头放不下,最终不论竞赛还是高考都不尽如人意。

5.如果最终的成绩还是不理想,没有关系,这只是漫长人生中一个微不足道的小插曲,你的眼前还有一片更广阔的天地。

OI是什么?的更多相关文章

  1. 再见,OI

    你好,NOIP 2015年9月1日 正式成为了福建省莆田一中的一名高一成员 后来学校搞了选修 大家都很激动 因为自己的兴趣和特长能够得到发挥了(或者说能逃课或者看好多电影) 发现选修提供的选项中有好几 ...

  2. 告别我的OI生涯

    本文章写于2008年12月15日. 随着2008noip的结束,我也结束了我的OI生涯. 信息竞赛也许是从小到大让我最最努力的一件事.我记得参加2006noip初赛前,每天中午为了上信息课都吃不上中午 ...

  3. 收集一些关于OI/ACM的奇怪的东西……

    一.代码: 1.求逆元(原理貌似就是拓展欧几里得,要求MOD是素数): int inv(int a) { if(a == 1) return 1; return ((MOD - MOD / a) * ...

  4. 继续OI

    NOIP2016于2016.11.20日12:00正式结束. 我作为oi的生涯 或许会结束? 或者继续? 然而前途依然迷茫,我是否应该继?或是放弃? 距离省选还有3~4个月,我该何去何从? 虽然已经经 ...

  5. 再见OI

    NOIP2016终章 自己弱还脑残加手残 再见OI 你好高考 你好明天 "没有泪水的日子会轻松很多 但我的心还是会痛" ------------------------------ ...

  6. 他们在军训,我在搞 OI(Ending)

    Day 7 上午看看数学书,老师让我把导数相关的概念学了.这也没有多高大上,就是一坨公式需要背,什么 (a)' = 0 啦,什么 (xn)' = n·xn-1 啦,什么 sin'(x) = cos(x ...

  7. OI总结(垃圾排版就忽略了吧)

    学OI一年了,到现在联赛所需要的知识已经基本学完了.现在,有必要回过头来,总结总结自己一年来学到的知识以及得到的经验教训. 基础 语言基础 C++的语言基础啥的就略了吧. 算法复杂度分析 O:复杂度的 ...

  8. 关于我的OI生涯(AFO){NOIP2016 后}

    这篇我就随意写啦~不用统一的“题解”形式.♪(^∀^●)ノ 也分好几次慢慢更吧~ 对于NOIP2016的总结,我本想善始善终back回,但是心情不足以支撑我,那就只能有始有终了......下面进入我的 ...

  9. 浅谈分治算法在OI中的应用

    分治虽然是基本思想,但是OI中不会出裸分治让你一眼看出来,往往都是结合到找规律里面. 先来个简单的: 奇妙变换 (magic.pas/c/cpp) [问题描述]   为了奖励牛牛同学帮妈妈解决了大写中 ...

  10. OI 中的 FFT

    不行啊最近备考简直变成文化狗了= =..我还脑洞大开想学俄语什么心态.. 简单地说一下FFT(来,跟我一起念,法〰法〜塔,法斯特~福铝页~圈死佛而母).. FFT本来是做信号变换用的,当然OI和信号变 ...

随机推荐

  1. mysql工具的使用、增删改查

    mysql工具使用 目录 mysql工具使用 mysql的程序组成 mysql工具使用 服务器监听的两种socket地址 mysql数据库操作 DDL操作 数据库操作 表操作 用户操作 查看命令SHO ...

  2. 一篇文章带你掌握主流办公框架——SpringBoot

    一篇文章带你掌握主流办公框架--SpringBoot 在之前的文章中我们已经学习了SSM的全部内容以及相关整合 SSM是Spring的产品,主要用来简化开发,但我们现在所介绍的这款框架--Spring ...

  3. 怎么在线预览.doc,.docx,.ofd,.pdf,.wps,.cad文件以及Office文档的在线解析方式。

    前言 Office文件在线预览是目前移动化办公的一种新趋势.Office在线预览指的是Office系列的文件在线查看而不依附域客户端的存在.在浏览器或者浏览器控件中可以预览查看Word.PDF.Exc ...

  4. 19.-哈希算法&注册登录

    一.哈希算法 哈希: 给定明文-计算出一段定长的-不可逆的值 定长输出:不管明文输入多少,哈希都是定长的 不可逆:无法反向计算出对应的明文 雪崩效应:输入改变,输出必然变 md5:32位16进制   ...

  5. C# 7.0 添加和增强的功能【基础篇】

    C# 7.0 版是与 Visual Studio 2017 一起发布. 虽然该版本继承和发展了C# 6.0,但不包含编译器即服务. 一.out 变量 以前我们使用out变量必须在使用前进行声明,C# ...

  6. Linux正则表达式与grep

    bash是什么 bash是一个命令处理器,运行在文本窗口中,并能执行用户直接输入的命令 bash还能从文件中读取linxu命令,称之为脚本 bash支持通配符.管道.命令替换.条件判断等逻辑控制语句 ...

  7. 基于JESD204B和PCIe DMA的多通道数据采集和回放系统

    基于JESD204B和PCIe DMA的多通道数据采集和回放系统 在主机端PCIe驱动的控制和调度下,数据采集与回放系统可以同时完成对多个JESD204B接口AD数据的采集以及JESD204B接口DA ...

  8. 我的Spark学习笔记

    一.架构设计 Driver根据用户代码构建计算流图,拆解出分布式任务并分发到 Executors 中去:每个Executors收到任务,然后处理这个 RDD 的一个数据分片子集 DAGSchedule ...

  9. docker使用代理(in home)

    docker 使用 http http_proxy https://docs.docker.com/config/daemon/systemd/ # 代理 和 国内 镜像源 不要 同时使用,... # ...

  10. 【RPC和Protobuf】之Protobuf环境配置及组合工作

    Protobuf定义:是一种数据描述语言,作为接口规范的描述语言,可作为设计安全的跨语言RPC接口的基础工具 一.Protobuf入门 作用:最终保证RPC接口规范和安全 最基本的数据单元:messa ...