大话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个月,我该何去何从? 虽然已经经 ...
随机推荐
- Go语言系列教程
一 Go介绍与开发环境搭建 01-Go语言简介 02-开发环境搭建 03-Go语言集成开发环境之GoLand安装使用 04-Go语言集成开发环境之VS Code安装使用 05-Go包管理详解 二 Go ...
- 时间time()和$_SERVER['REQUEST_TIME']
文件ab1.php <?phpforeach($i=0;$i<1000;$i++){ echo $time();} 结果: 文件ab2.php <?php foreach($i=0; ...
- 成为杰出Java开发人员的10个步骤
在优锐课的学习分享中,讨论了如果你是Java开发人员并且对技术充满热情,则可以按照以下十个步骤进行操作,这可以使你成为杰出的Java开发人员. 1.具有扎实的基础和对OO原理的理解 对于Java开发人 ...
- python学习(day1-2)
python 学习(day - 1-2 ) 变量:将运算的中间结果暂存到内存,以便后续程序调⽤. 变量的命名规则: 1, 变量由字⺟, 数字,下划线搭配组合⽽成 2, 不可以⽤数字开头,更不能是全数字 ...
- elasticsearch 索引的使用(配合haystack)
1,# 从仓库拉取镜像$ sudo docker image pull delron/elasticsearch-ik:2.4.6-1.02,下载elasticsearc-2.4.6目录拷贝到home ...
- LinkedHashMap,源码解读就是这么简单
概述 LinkedHashMap是HashMap的子类,它的大部分实现与HashMap相同,两者最大的区别在于,HashMap的对哈希表进行迭代时是无序的,而LinkedHashMap对哈希表迭代是有 ...
- Java生鲜电商平台-Java后端生成Token架构与设计详解
Java生鲜电商平台-Java后端生成Token架构与设计详解 目的:Java开源生鲜电商平台-Java后端生成Token目的是为了用于校验客户端,防止重复提交. 技术选型:用开源的JWT架构. 1. ...
- docker下安装Redis
Docker介绍 1.节约时间.快速部署和启动 2.节约成本 3.标准化应用发布 4.方便做持续继承 5作为集群中的轻量主机或节点 6.方便构建基于SOA或者微服务架构的系统 Docker中文文档 h ...
- node设置跨域白名单
// 判断origin是否在域名白名单列表中 function isOriginAllowed(origin, allowedOrigin) { if (_.isArray(allowedOrigin ...
- vue-router Uncaught (in promise) NavigationDuplicated 错误
使用 vue-router 编程式实现页面跳转 this.$router.replace({ path: '/pub' }); 出现错误如下图 原因:vue-router 在 3.1 版本之后把 th ...