全国青少年信息学(计算机)奥林匹克分区联赛竞赛大纲
一、初赛内容与要求:(#表示普及组不涉及,以下同)
- 计算机的基本发展
- 诞生与发展
- 特点
- 在现代社会中的应用
- 计算机系统的基本组成
- 计算机的工作原理#
- 计算机中的数的表示
- 计算机信息安全基础知识
- 计算机网络
- 计算机的基本操作
- MS DOS与Windows的使用基础
- 常用输入/输出设备的种类、功能、使用
- 汉字输入/输出方法
- 常用计算机屏示信息
- 程序设计基本知识
- 程序的表示
- 自然语言的描述
- PASCAL或BASIC语言
- 数据结构的类型
- 简单数据的类型
- 构造类型:数组、字符串
- 了解基本数据结构(线性表、队列与栈)
- 程序设计
- 结构化程序的基本概念
- 阅读理解程序的基本能力
- 具有完成下列过程的能力:
现实世界(指知识范畴的问题)—>信息世界(表达解法)—>计算机世界(将解法用计算机能实现的数据结构和算法描述出来)
- 基本算法处理
- 简单搜索
- 字串处理
- 排序
- 查找
- 统计
- 分类
- 合并
- 简单的回溯算法
- 简单的递归算法
- 简单数据的类型
- 程序的表示
二、复赛内容与要求:在初赛的内容上增加以下内容(2002年修改稿):
- 计算机软件
- 操作系统的使用知识
- 编程语言的使用
- 数据结构
- 结构类型中的记录类型
- 指针类型
- 文件(提高组必须会使用文本文件输入)
- 链表
- 树
- 图#
- 程序设计
- 程序设计能力
- 设计测试数据的能力
- 运行时间和占用空间的估算能力#
- 算法处理
- 排列组合的应用
- 进一步加深回溯算法、递归算法
- 分治法
- 搜索算法:宽度、深度优先算法
- 表达式处理:计算、展开、化简等#
- 动态规划#
三、初赛试题类型:
- 试题语言三者选一(程序设计语言:C或C++或PASCAL)
- 判断、填空、完善程序、读程序写运行结果、问答
四、推荐读物:
- 分区联赛辅导丛书
- NOI导刊
- 高精度
- 加法
- 减法
- 乘法
- 高精度除单精
- 排序算法
- 选择排序
- 插入排序
- hash排序
- 归并排序
- 堆排序
- 快排
- 字符串匹配算法
- 蛮力法
- KMP
- 数论
- 欧几里德算法
- 扩展欧几里德算法ax+by=c的正整数
- 素数测试 {O(sqrt(n))}
- 筛法求素数
- 快速乘方(请用高精)
- 树论
- 二叉搜索树
- 优先队列
- 线段树 (RMQ问题建议使用st算法)
- 平衡树一种(建议学习SBT)
- 图论
- 拓扑排序
- 割顶,割边(桥) {O(n)}
- 强连通分支 {O(n)}
- 有向无回路图的最长路径(罕见用上的)
- 欧拉回路
- 最小生成树
- Prime
- Kruskal (这个个人觉得挺重要的)
- 次小生成树 {简单的删除最大边是不对的}
- 最短路径
(推荐单源使用spfa,同样可以通过设上限发现图中是否有负权回路,而且这个思想在去除dp中的暂时后效性非常有用)- Dijkstra
- Bellman-ford
- spfa
- flyod
- 计算几何学 {NOIP不是不考几何}
- 判断两条线段是否相交
- 凸包算法 {O(n)}
- 其他算法
- 并查集
- RMQ问题(通解:线段树,st算法)