本文将收录一切我认为对我十分有帮助的他人的博文以及我认为有价值的我自己的原创文章。

引言

有人说:程序=算法+数据结构,所以OI=程序=算法+数据结构。

在我看来,这句话的前半句是对的,但后半句则有本质上的错误,我自己提出了一个公式:

OI=数据结构相关算法+容器+应试能力+数学+码力

我来解释一下吧。

  • 数据结构相关算法

所谓“数据结构相关算法”是我自己生造出来的一个名词,因为在OI中的代码与实际工作用的工程代码完全不同,工程代码讲究OOP,要求数据结构与算法分开,而在OI中,一场比赛往往只有几个小时,分配给一道题的时间最多最多只有2个小时,使用OOP是不现实也无意义的,即使确有必要,OIer顶多只需要用带有简单成员函数的结构体。显然,OI中的代码比较混杂,算法是依附于代数结构而存在的————代码长度决定了这一点,而OIer学习时往往也是按照数据结构分类的,比如先统一学图算法,再统一学树算法等等,算法往往就是对一种数据结构的使用与操控,因而应该将算法称之为:“数据结构相关算法”。

  • 容器

如果是上一个“数据结构相关算法”对应算法的话,这个“容器”就应该对应数据结构,之所以不称之为数据结构,因为了防止与前一个相混淆,还有一个原因是容器一般是为了提高得分的使用的,完全不使用容器也可以得分,但往往不能AC,使用一般的容器便能提升很多得分,而使用与上一因素“数据结构相关算法”最匹配的容器才能保证AC,容器更像附加上去的一个东西,而非得到正确输出的代码的一部分,缺了“数据结构相关算法”程序就可能爆零,但缺了容器程序至少还能得分(数据太弱的时候也许还能AC呢)。

  • 应试能力

这点十分重要,OI毕竟也是千军万马走独木桥,相对与高考,OI的人数要少得多,然而这座独木桥也窄的多,两者综合来看,竞争实际上比高考激烈的不只是一点点,再加上一年只有一次比赛,高一基本没人能得到报送,高三要准备高考,也就是说只有高二一年有机会,而一年只有一次比赛,CSP-S或是省选或是NOI,考砸一个数年的努力便全部化为泡影,而发挥不稳定也是OI的垢病之一,往往一个很小很小的小错误就可能少得100分,这100分,就是退役与保送的差距,而OIer只有高二一年!只有一次机会!只要有一点失败,就会抱憾退役......许多人因此十分紧张,很多OIer都在回忆录中表示退役之战前的日子比高考前的日子还漫长、还难熬————这紧张过分的情绪无疑会再度增加发挥不稳定的可能性,导致退役......因而,应试能力十分重要,开始前心态平和,考试时稳定发挥,考试后不过分或喜或悲是十分重要的!我因此把他提到了第3位,位于数学和码力之前。

  • 数学

这点的重要性毋庸置疑,高级算法,如DP,DDP,树论,线性规划等都是需要数学的,数学能力是一个人学习能力与智商在一定程度上的综合体现。

  • 码力

又是一个奇怪的名词,这个词的意思是Coding的能力,综合包括了对所使用语法的掌握深度,对IDE和操作系统的运用能力,把脑中的思路转化为代码的速度和成功率等等,甚至还包括敲键盘的速度(手速)。无疑也是十分重要的,如果码力欠佳。就会发生一看题目啥也不会,一看题解就秒懂的尴尬的笔试型选手,往往在OI这个都独木桥上走不远。但实际上由于大部分人码力都没有什么问题,所以我把码力这个因素排在了最后一位。


(以下内容尚不完善,有时间后再充实与更新)
我想收纳的文章有上百篇,但暂时没时间一一添加链接,以后有时间再说吧。

算法相关博文推荐


数据结构相关博文推荐


应试技巧相关博文推荐


码力相关博文推荐

大话OI的更多相关文章

  1. SQL SERVER大话存储结构(5)_SQL SERVER 事务日志解析

          本系列上一篇博文链接:SQL SERVER大话存储结构(4)_复合索引与包含索引    1 基本介绍 每个数据库都具有事务日志,用于记录所有事物以及每个事物对数据库所作的操作. 日志的记录 ...

  2. 大话keepalive

    大话keepalive 我们说到keepalive的时候,需要先明确一点,这个keepalive说的是tcp的还是http的. tcp的keepalive是侧重在保持客户端和服务端的连接,一方会不定期 ...

  3. 再见,OI

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

  4. 我也来说说DDD~大话目录

    回到占占推荐博客索引 DDD之前没有接触过,但一但有了接触就一发不可收拾,他会带去进入一个全新的世界! DDD不是新技术,而是新思想,新模式,是软件开发领域的一次突破,它更接近于业务,对于业务的改动它 ...

  5. Atitti 大话存储读后感 attilax总结

    Atitti 大话存储读后感 attilax总结 1.1. 大话存储中心思想(主要讲了磁盘文件等存储)1 1.2. 最耐久的存储,莫过于石头了,要想几千万年的存储信息,使用石头是最好的方式了1 1.3 ...

  6. 大熊君大话NodeJS之------Connect中间件模块(第一季)

    一,开篇分析 截止到今天来说,NodeJS系列文章已经有将近十篇了,让我们回顾一下: (1),大熊君大话NodeJS之开篇------Why NodeJS(将Javascript进行到底) (2),大 ...

  7. 告别我的OI生涯

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

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

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

  9. 继续OI

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

随机推荐

  1. 【51nod1678】lyk与gcd(莫比乌斯反演+枚举因数)

    点此看题面 大致题意: 一个长度为\(n\)的数组,实现两种操作:单点修改,给定\(i\)求\(\sum_{j=1}^na_j[gcd(i,j)=1]\). 莫比乌斯反演 考虑推一推询问操作的式子: ...

  2. Java连载44-静态代码块、实例代码块、继承

    一.可以使用static关键字来定义“静态代码块” 1.语法规则 static { java语句: } 2.静态代码块在类加载时执行,并且只执行一次 3.静态代码块在一个类中可以编写多个,并且遵循自上 ...

  3. sed命令:删除匹配行和替换

    删除以a开头的行 sed -i '/^a.*/d' tmp.txt -i 表示操作在源文件上生效.否则操作内存中数据,并不写入文件中.在分号内的/d表示删除匹配的行 替换匹配行: sed -i 's/ ...

  4. zookeeper — 实现分布式锁

    一.前言 在之前的文章中介绍过分布式锁的特点和利用Redis实现简单的分布式锁.但是分布式锁的实现还有很多其他方式,但是万变不离其宗,始终遵循一个特点:同一时刻只能有一个操作获取.这篇文章主要介绍如何 ...

  5. SpringCloud的入门学习之Eureka(Eureka的单节点)

    SpringCloud--->Spring生态体系的微服务架构:https://spring.io/ 官网贴图,如下所示,介绍了微服务的架构体系(话说,英语好读官网,可能很爽吧,没体验过). 1 ...

  6. java基础(25):Properties、序列化流、打印流、commons-IO

    1. Properties类 1.1 Properties类介绍 Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符 ...

  7. Taro聊天室|react+taro仿微信聊天App界面|taro聊天实例

    一.项目简述 taro-chatroom是基于Taro多端实例聊天项目,运用Taro+react+react-redux+taroPop+react-native等技术开发的仿微信App界面聊天室,实 ...

  8. ECAMScript中的let和const

    let与const命令都是用来在js中声明变量的,在使用上与var相似,但存在一些区别,下面先讲let同var的区别 let 怎么使用呢,同var一样,let  变量名   就可以声明了 区别一:其作 ...

  9. 5个 JS 解构有趣的用途

    摘要: 玩转ES6解构赋值. 原文:5个 JS 解构有趣的用途 译者:前端小智 1. 交换变量 通常交换两个变量的方法需要一个额外的临时变量,来看看例子: let a = 1; let b = 2; ...

  10. 需求规格说明书(final)

    1. 引言 1.1 编写目的 该文档是关于微信小程序自习吧的功能和性能描述,重点描述了小程序的功能需求,并作为小程序开发设计阶段的主要输入. 本文档的预期读者包括:triple兔成员,软件工程老师,用 ...