从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. 知识图谱顶会论文(IJCAI-2022) TEMP:多跳推理的类型感知嵌入

    IJCAI-TEMP:知识图谱上多跳推理的类型感知嵌入 论文地址: Type-aware Embeddings for Multi-Hop Reasoning over Knowledge Graph ...

  2. SpringBoot自定义注解+异步+观察者模式实现业务日志保存

    一.前言 我们在企业级的开发中,必不可少的是对日志的记录,实现有很多种方式,常见的就是基于AOP+注解进行保存,但是考虑到程序的流畅和效率,我们可以使用异步进行保存,小编最近在spring和sprin ...

  3. 一、Django介绍

    一.Django介绍 Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django.Django 是一个开放源代码的 Web 应用框 ...

  4. web前端学习之旅笔记01--HTML

    web前端学习之旅笔记01--HTML HTML最容易上手,但也易忘,实际开发中有时需要查阅官方文档,小伙伴们别忘了哟! HTML 教程 (w3school.com.cn) HTML是网页的骨架负责页 ...

  5. ajax-Xhr

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. vue使用elementUI组件提交表单(带图片)到node后台

    1.方法一(图片与表单分开,请求2次) 1.1 前台代码 // elementUI表单 <el-form ref="form" class="forms" ...

  7. Excel中的VLOOKUP函数

    VLOOKUP函数是Excel中的一个纵向查找函数,功能是按列查找,最终返回该列所需查询序列所对应的值. 该函数的语法规则如下: VLOOKUP(lookup_value,table_array,co ...

  8. 2022-11-11 Acwing每日一题

    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我会认真改正的.同时也希望 ...

  9. MediatRPC - 基于MediatR和Quic通讯实现的RPC框架,比GRPC更简洁更低耦合,开源发布第一版

    大家好,我是失业在家,正在找工作的博主Jerry.作为一个.Net架构师,就要研究编程艺术,例如SOLID原则和各种设计模式.根据这些原则和实践,实现了一个更简洁更低耦合的RPC(Remote Pro ...

  10. 深度学习之logistics回归

    在开始之前,事先声明本文参考[中文][吴恩达课后编程作业]Course 1 - 神经网络和深度学习 - 第二周作业_何宽的博客-CSDN博客_吴恩达课后编程作业 加上自己的理解,希望可以不用重复看吴恩 ...