大话OI
本文将收录一切我认为对我十分有帮助的他人的博文以及我认为有价值的我自己的原创文章。
引言
有人说:程序=算法+数据结构,所以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的更多相关文章
- SQL SERVER大话存储结构(5)_SQL SERVER 事务日志解析
本系列上一篇博文链接:SQL SERVER大话存储结构(4)_复合索引与包含索引 1 基本介绍 每个数据库都具有事务日志,用于记录所有事物以及每个事物对数据库所作的操作. 日志的记录 ...
- 大话keepalive
大话keepalive 我们说到keepalive的时候,需要先明确一点,这个keepalive说的是tcp的还是http的. tcp的keepalive是侧重在保持客户端和服务端的连接,一方会不定期 ...
- 再见,OI
你好,NOIP 2015年9月1日 正式成为了福建省莆田一中的一名高一成员 后来学校搞了选修 大家都很激动 因为自己的兴趣和特长能够得到发挥了(或者说能逃课或者看好多电影) 发现选修提供的选项中有好几 ...
- 我也来说说DDD~大话目录
回到占占推荐博客索引 DDD之前没有接触过,但一但有了接触就一发不可收拾,他会带去进入一个全新的世界! DDD不是新技术,而是新思想,新模式,是软件开发领域的一次突破,它更接近于业务,对于业务的改动它 ...
- Atitti 大话存储读后感 attilax总结
Atitti 大话存储读后感 attilax总结 1.1. 大话存储中心思想(主要讲了磁盘文件等存储)1 1.2. 最耐久的存储,莫过于石头了,要想几千万年的存储信息,使用石头是最好的方式了1 1.3 ...
- 大熊君大话NodeJS之------Connect中间件模块(第一季)
一,开篇分析 截止到今天来说,NodeJS系列文章已经有将近十篇了,让我们回顾一下: (1),大熊君大话NodeJS之开篇------Why NodeJS(将Javascript进行到底) (2),大 ...
- 告别我的OI生涯
本文章写于2008年12月15日. 随着2008noip的结束,我也结束了我的OI生涯. 信息竞赛也许是从小到大让我最最努力的一件事.我记得参加2006noip初赛前,每天中午为了上信息课都吃不上中午 ...
- 收集一些关于OI/ACM的奇怪的东西……
一.代码: 1.求逆元(原理貌似就是拓展欧几里得,要求MOD是素数): int inv(int a) { if(a == 1) return 1; return ((MOD - MOD / a) * ...
- 继续OI
NOIP2016于2016.11.20日12:00正式结束. 我作为oi的生涯 或许会结束? 或者继续? 然而前途依然迷茫,我是否应该继?或是放弃? 距离省选还有3~4个月,我该何去何从? 虽然已经经 ...
随机推荐
- bzoj3293 分金币
题目链接 problem 圆桌上坐着n个人,每人有一定数量的金币,金币总数能被n整除.每个人可以给他左右相邻的人一些金币,最终使 得每个人的金币数目相等.你的任务是求出被转手的金币数量的最小值. so ...
- postgresql 笔记
客户端GUI 在官网下载一个,在安装的时候,不安装 server 端,会在客户端 安装一个 pgadmin .
- js实现addClass方法,classList与className有什么区别?
壹 ❀ 引 Jquery中addClass与removeClass是两个使用高频的方法,对于为dom元素增删class类非常方便:但如果不用JQ,使用js怎么模拟它们呢?本文主要记录下自己的实现思路 ...
- python接口自动化10-excel设计模式实战
前言 一.简介 1.环境准备:python+requests+excel+unittest+ddt,主要安装以下环境,其它一般都有了,没有自行安装: pip install xlrd pip inst ...
- vue中的父子组件相互调用
vue中的父子组件相互调用: 1.vue子组件调用父组件方法:子组件:this.$emit('xx'); 父组件:定义yy方法,并在引用子组件时传参,如@xx="yy" 2.vue ...
- Drools规则引擎-如果Fact对象参数为null如何处理
问题场景 在技术交流群(QQ:715840230)中有同学提出这样的问题: 往kiesession里面传入fact,如果不做输入检查fact里面有些字段可能是null值.但是如果在外面做输入检查,规则 ...
- VS中怎样对C#项目进行单元测试
场景 SpringBoot+Junit在IDEA中实现查询数据库的单元测试: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/927 ...
- java annotation使用介绍
还望支持个人博客站:http://www.enjoytoday.cn 介绍 Annotation的中文名字叫注解,开始与JDK 1.5,为了增强xml元数据和代码的耦合性的产物.注解本身并没有业务逻辑 ...
- Troubleshooting ORA-1628 - max # extents (32765) reached for rollback segment <SEGMENT_NAME> (Doc ID 1580182.1)
Troubleshooting ORA-1628 - max # extents (32765) reached for rollback segment <SEGMENT_NAME> ( ...
- mysql connector c++ 1.1 安装
mysql connector c++ 1.1 安装 前提:boost安装完毕 注意:8.0版本的源码用此方法,编译不过.所以要编译8.0的同学请绕行. 1,下载源码 git clone https: ...