- 从入门到精通
教练我想学算法编程!信息学奥赛课程大纲
- 2024-10-17 20:34:56 @
一、培养对象
从中学阶段开始培养一批对计算机、编程、算法感兴趣、肯钻研的学生,并有志于参加信息学奥赛。
二、课程内容
全国青少年信息学奥林匹克竞赛(NOI)是面向全国中学生参加的五大学科竞赛之一,该课程直接面向意愿报名参赛的选手学员,是一门时间跨度长、知识容量大、效果收益高的培养课程方案。
(1)Level-1 语法基础课:系统讲解竞赛中常用的 C++ 语法知识与实用技巧。
(2)Level-2 算法基础课:系统讲解基础算法与数据结构的 原理,并给出相应 代码模板。
(3)Level-3 算法提高课:系统讲解常用算法与数据结构的 应用方式与技巧。
(4)Level-4 算法进阶课:系统讲解 高阶算法和数据结构 的原理、代码模板以及应用方式。
遵循“由易到难、逐步进阶”的理念,力争将抽象复杂的算法进行思维拆解、动态演示,让更多中学生体验“算法之美”。信息学教练全程陪伴,帮你解决写代码、思算法、辨未来过程中的疑惑问题,欢迎热衷于计算机、编程、算法的同学们积极报名参加!
三、教学目的
通过长期的教学训练,使学员有能力参加全国青少年信息学奥林匹克竞赛系列活动:CSP-J/S 非专业级软件能力认证、NOIP 全国青少年信息学奥林匹克联赛、NOI 联合省选、NOI 全国青少年信息学奥林匹克、IOI 国际信息学奥林匹克等。
四、学时数及具体分配
Level-1 语法基础课:算法竞赛中常用的 C++ 语法和实用技巧
(每节课 2 h,共 10 节,共 20 h)
C++ 语法 1:选拔考试题解与 C++ 编程入门
C++ 语法 2:计算机基础与图灵、冯·诺依曼
C++ 语法 3:顺序结构、分支结构、循环结构
C++ 语法 4:数组、字符串、函数
C++ 语法 5:类、结构体、指针、引用、文件
C++ 语法 6:STL、位运算、常用库库函数
Level 2 算法基础课:算法竞赛中常见算法与数据结构的原理、代码模板
(每节课 3 h,共 20 节,共 60 h)
基础算法 1:模拟、枚举、贪心
基础算法 2:排序、递归、二分
基础算法 3:高精度、前缀和与差分
基础算法 4:双指针算法、位运算、离散化、区间合并
数据结构 1:链表与邻接表、栈与队列、KMP
数据结构 2:Trie 树、并查集、堆
数据结构 3:Hash 表、STL 使用技巧
搜索与图论 1:DFS、BFS、树与图的存储与遍历、拓扑排序
搜索与图论 2:最短路问题(Dijkstra、Bellman-Ford、SPFA、Floyd)
搜索与图论 3:最小生成树、二分图(Prim、Kruskal、染色法、匈牙利算法)
动态规划 1:背包问题(01 背包、完全背包、多重背包、分组背包、混合背包)
动态规划 2:线性 DP、区间 DP
动态规划 3:计数类 DP、数位统计 DP、状态压缩 DP
动态规划 4:树形 DP、记忆化搜索
时空复杂度分析
数学知识:质数,约数,欧拉函数,快速幂,扩展欧几里得算法
中国剩余定理,高斯消元,求组合数,容斥原理,博弈论
Level 3 算法提高课:算法竞赛中常用算法与数据结构的应用方式与技巧
1.动态规划——从集合角度考虑DP问题
1.1 数字三角形模型
1.2 最长上升子序列模型
1.3 背包模型
1.4 状态机模型
1.5 状态压缩DP
1.6 区间DP
1.7 树形DP
1.8 数位DP
1.9 单调队列优化的DP问题
1.10 斜率优化的DP问题
2.搜索
2.1 BFS
2.1.1 Flood Fill
2.1.2 最短路模型
2.1.3 多源BFS
2.1.4 最小步数模型
2.1.5 双端队列广搜
2.1.6 双向广搜
2.1.7 A*
2.2 DFS
2.2.1 连通性模型
2.2.2 搜索顺序
2.2.3 剪枝与优化
2.2.4 迭代加深
2.2.5 双向DFS
2.2.6 IDA*
3.图论
3.1.1 单源最短路的建图方式
3.1.2 单源最短路的综合应用
3.1.3 单源最短路的扩展应用
3.2 floyd算法及其变形
3.3.1 最小生成树的典型应用
3.3.2 最小生成树的扩展应用
3.4 SPFA求负环
3.5 差分约束
3.6 最近公共祖先
3.7 有向图的强连通分量
3.8 无向图的双连通分量
3.9 二分图
3.10 欧拉回路和欧拉路径
3.11 拓扑排序
4.高级数据结构
4.1 并查集
4.2 树状数组
4.3.1 线段树(一)
4.3.2 线段树(二)
4.4 可持久化数据结构
4.5 平衡树——Treap
4.6 AC自动机
5.数学知识
5.1 筛质数
5.2 分解质因数
5.3 快速幂
5.4 约数个数
5.5 欧拉函数
5.6 同余
5.7 矩阵乘法
5.8 组合计数
5.9 高斯消元
5.10 容斥原理
5.11 概率与数学期望
5.12 博弈论
6.基础算法
6.1 位运算
6.2 递归
6.3 前缀和与差分
6.4 二分
6.5 排序
6.6 RMQ
五、参考资料
竞赛书籍:信息学奥林匹克辞典,算法竞赛入门经典、算法竞赛进阶指南
知识网站 :OI Wiki(https://oi-wiki.org)
校外 OJ:洛谷(https://www.luogu.com.cn)
六、如何学好信息学奥赛
七、竞赛对于学生品质的培养
自我认知 —— 知人者智,自知者明
清晰规划 —— 智慧地选择坚持与放弃
坚持不懈 —— 在绝望中寻找希望,攀过一座座高峰
辩证理解 —— 敢于直面光鲜与苦难
看淡眼前的利益 —— 为了远大的目标而非功利的目标
立志高远 —— 道虽远,行则将至
专时专用 —— 学习时专心致志,休息时心无杂念