OI 知识体系
OI Training 知识体系结构
初级
1.1 C语言基础
1.1.1 C语言程序结构(A+B Problem)
1.1.2 变量,常量,数据类型,输入与输出
1.1.3 条件语句
1.1.4 循环语句
1.1.5 数组
1.1.6 字符数组、字符串
1.1.7 指针
1.1.8 共同体、结构体
1.1.9 函数
1.1.10 过关练习题
中级
2.1 深度优先搜索
2.1.1 栈与递归函数
2.1.2 深搜树模型与回溯
2.2 宽度优先搜索
2.2.1 链表与队列
2.2.2 宽搜树模型
2.2.3 搜索过关练习题.
2.3 排序问题
2.3.1冒泡排序,选择排序,插入排序
2.3.2 二分查找
2.3.3 快速排序
2.3.4 归并排序
2.3.5 桶排序
2.3.6 排序过关练习
2.4 贪心、模拟
2.4.1贪心策略与最优性原理
2.4.2 经典模拟
2.4.3字符串模拟
2.4.4 过关练习
高级
3.1 动态规划
3.1.1 动归思想与分析过程(递推法,状态,阶段,决策,边界)
3.1.2 背包模型
3.1.3 子序列模型
3.1.4 区间模型
3.1.5 资源分配模型
3.1.6 滚动数组
3.1.7 记忆化搜索
3.1.8 动态规划过关练习
3.2 基础数论
3.2.1 整数的性质
3.2.1 质数与整除
3.2.3 同余定理
3.2.4 基础数论过关练习
3.3高精度
3.3.2 大数加减法
3.3.3 大数乘法
3.3.4 大数除法与取余
3.3.5 高精度过关练习
3.4 树与森林
3.4.1 树和森林的特征与区别
3.4.2 树、森林的存储方式
3.4.3 树、二叉树的遍历
3.4.4 哈夫曼树
3.4.5 键树
3.4.5 并查集,LCA
3.4.6 树模型过关练习
3.5 图
3.5.1 图的概念与性质
3.5.2 图的存储(邻接矩阵,边表等)
3.5.3 连通分量与强连通分量
3.5.4 生成树问题(最小,次小,生成树计数)
3.5.5 最短路径(单源,多源各种算法)
3.5.6 拓扑排序
3.6哈希表
3.6.1哈希表的作用(标记数组,快速定位,优化程序的利器)
3.6.2哈希表的性质(哈希冲突)
3.6.3哈希表与字符串
3.7 位运算与常数优化
3.7.1 位运算应用举例
3.7.2 常数优化举例
3.8 C++ STL模板的应用(各种常用的数据结构的用法介绍和演示)
3.8.1 algorithm
3.8.2 list
精英级
4.1 搜索与剪枝
4.1.1 最优性剪枝
4.1.2 A*搜索,启发式搜索,双向搜索
4.1.2 迭代加深搜索
4.1.3 模拟退火
4.2 优先队列
4.2.1 二叉堆
4.2.2 可并优先队列(左偏树,二项堆)
4.3 动态规划
4.3.1状态压缩动态规划
4.3.2 决策单调性与斜率优化(单调队列)
4.3.4四边形不等式优化
4.3.5树型动态规划
4.3.6迭代型动态规划
4.3.7 高级数据结构优化
4.4 线段树,树状数组
4.4.1 树状数组的概念与原理
4.4.2 树状数组的应用
4.4.3 线段树的原理与模型
4.4.4 线段树的标记遗传
4.4.5 线段树的应用(区间计数,区间覆盖,动态规划优化等,越详细越好)
4.5 几何
4.5.1 解析几何,图形与方程
4.5.2 计算几何,向量运算,叉积。
4.5.3 凸包
4.5.4 圆并
4.5.5 半平面交
4.5.6 几何经典问题
4.6 经典数论
4.6.1 欧拉函数
4.6.2 不定方程
4.6.3 中国剩余定理
4.6.4 数论经典问题
4.7 线性代数
4.7.1 矩阵
4.7.2 高斯消元与行列式
4.7.3 模线性方程组
4.7.4 矩阵乘法与递推关系
4.8 二叉查找树
4.8.1 概念与性质
4.8.2 平衡树的性质与模型
4.8.3 B树的模型与应用
4.8.4 红黑树的模型与应用
4.8.5 Treap的模型与应用
4.8.6 伸展树(Splay)的模型与应用
4.9 串问题
4.9.1 模式匹配
4.9.2 AC自动机
4.9.3 扩展KMP算法
4.9.4 后缀树
4.9.5 后缀数组
4.10 网络流
4.10.1 概念与算法(dinic,sap等)
4.10.2 最大流与最小割
4.10.3 有费用的网络流
4.10.4 有流量上下界的网络流(zkw等)
4.11 二分图
4.11.1 最大匹配
4.11.2 最大权匹配
4.12 组合数学
4.12.1 鸽笼原理与Ramsey定理
4.12.2 排列组合与容斥原理
4.12.3 群论与置换群
4.12.4 Burnside引理与Pólya定理
4.12.5 数列与母函数
4.13 游戏与博弈
4.13.1 最小最大原理
4.13.2 Nim游戏与SG定理
4.13.3 其他模型
大师级
5.1 动态规划状态设计
5.1.1 基于连通性的状态压缩
5.2 树的分治
5.2.1 基于边的分治
5.2.2 基于点的分治
5.2.3 基于链的分治
5.3 各种高级数据结构
5.3.1 动态树
5.3.2 划分树
5.3.3 树链剖分
5.3.4 归并树
5.3.5 带花树
5.3.6 块链
5.3.7 Dancing Link
5.4 高级数据结构嵌套
5.4.1 线段树嵌套
5.4.2 各种树套树
5.5 快速傅里叶变换(fft)
5.5.1 快速多项式乘法
5.5.2 单位模根
5.6 各种数论(自行挖掘)
不平等博弈
差约分束
扩展欧几里德
行列式
多重积分
离散对数
原根
置换群
母函数
dance link
动态仙人球
遗传算法
FFT
高斯消元
最小表示法
基于母函数的优化
分层
重构图
各种分块
单纯形法
polya定理
期望类问题
………
知识是不断完善和无限的 !
这里还有一张图