OI 基础知识

1.1 基本数据结构

1. 数组

2. 链表,双向链表

3. 队列,单调队列,双端队列

4. 栈,单调栈

1.2 中级数据结构

1. 堆

2. 并查集与带权并查集

3. hash 表

    自然溢出

    双hash

1.3 高级数据结构

1. 树状数组

2. 线段树,线段树合并

3. 平衡树

    Treap 随机平衡二叉树

    Splay 伸展树

    * Scapegoat Tree 替罪羊树

4. 块状数组,块状链表

5.* 树套树

    线段树套线段树

    线段树套平衡树

    * 平衡树套线段树

6.可并堆

    左偏树

    *配对堆

7. *KDtree,*四分树

1.4 可持久化数据结构

1. 可持久化线段树

    主席树

2. * 可持久化平衡树

3. * 可持久化块状数组

1.5 字符串相关算法及数据结构

1. KMP

2. AC 自动机

3. 后缀数组

4. *后缀树

5. *后缀自动机

6. 字典树 Trie

7. manacher

1.6 图论相关

1. 最小生成树

    prim

    kruskal

2. 最短路,次短路,K短路

    spfa

    dijkstra

    floyd

3. 图的连通

    连通分量

    割点,割边

4. 网络流

    最大流

    最小割

    费用流

    分数规划

5. 树相关

    树上倍增

    最近公共祖先

    树链剖分

    树的分治算法(点分治,边分治)

    动态树 (LCT,*树分块

    prufer编码

7. 拓扑排序

8. 欧拉图

9. 二分图

    *KM算法

    匈牙利算法

1.7 数学相关

1. (扩展)欧几里得算法,筛法,快速幂

    斐蜀定理

    更相减损术

2. 欧拉函数与*降幂大法

3. 费马小定理

4. 排列组合

    lucas定理

5. 乘法逆元

6. 矩阵乘法

7. 数学期望与概率

8. 博弈论

    sg函数

    树上删边游戏

9. *拉格朗日乘子法

10. 中国剩余定理

11. 线性规划与网络流

12. 单纯型线性规划

13. 辛普森积分

14. 模线性方程组

15. 容斥原理与莫比乌斯反演

16. 置换群

17. 快速傅里叶变换

18. *大步小步法

1.8 动态规划

1. 一般,背包,状压,区间,环形,树形,数位动态规划

    记忆化搜索

    斯坦纳树

    背包九讲

2. 斜率优化与* 四边形不等式优化

3. 环 + 外向树上的动态规划

4. *插头动态规划

1.9 计算几何

1. 计算几何基础

2. 三维计算几何初步

3. *梯形剖分与*三角形剖分

4. 旋转卡壳

5. 半平面交

6. pick定理

7. 扫描线

1.10 搜索相关

1. bfs,dfs

2. A* 算法

3. 迭代加深搜索,双向广搜

1.11 特殊算法

1. 莫队算法,*树上莫队

2. 模拟退火

3. 爬山算法

4. 随机增量法

1.12 其它重要工具与方法

1.模拟与贪心

2. 二分,三分法

3. 分治,CDQ分治

4. 高精度

5. 离线

6. ST表

1.13 STL

1. map

2. priority_queue

3. set

4. bitset

5. rope

1.14 非常见算法

1. *朱刘算法

2. *弦图与区间图



├─模拟
├─字符串
│    ├─字符串基础
│    ├─manacher
│    ├─kmp
│    ├─trie
│    ├─ac自动机
│    ├─后缀数组(sa)
│    ├─后缀自动机(sam)
│    └─后缀树
├─搜索
│    ├─深度搜索(dfs)
│    ├─记忆化搜索
│    ├─广度搜索(bfs)
│    ├─双向广搜
│    ├─回溯
│    ├─A*
│    ├─迭代深搜
│    ├─IDA*
│    └─dfs序
├─动态规划
│    ├─区间dp
│    ├─环形dp
│    ├─背包dp
│    ├─树形dp
│    ├─状压dp
│    ├─数位dp
│    ├─插头dp
│    └─优化
│        ├─四边形不等式
│        ├─斜率优化
│        └─二进制优化
├─数论
│    ├─筛法
│    ├─快速幂
│    ├─欧几里得算法
│    ├─拓展欧几里得算法
│    ├─费马小定理(欧拉定理)
│    ├─排列组合
│    ├─康托展开
│    ├─概率与期望
│    ├─置换群
│    │    ├─Burnside 引理
│    │    └─Pólya 计数
│    ├─抽屉原理(加强版)
│    ├─容斥原理
│    ├─矩阵乘法
│    ├─乘法逆元
│    ├─高斯消元
│    ├─欧拉函数
│    ├─中国剩余定理
│    ├─单纯型法
│    ├─莫比乌斯函数及莫比乌斯反演
│    └─快速傅里叶变换
├─图论
│    ├─拓扑排序
│    ├─生成树
│    │    ├─k小生成树
│    │    ├─kruskal
│    │    └─prim
│    ├─最短路
│    │    ├─k短路
│    │    │    └─偏离算法
│    │    ├─spfa(Bellman-Ford)
│    │    ├─dijkstra
│    │    └─floyd
│    ├─差分约束
│    ├─并查集
│    ├─图的连通
│    │    ├─tarjan
│    │    ├─双连通分量
│    │    ├─强连通分量
│    │    └─割点割边
│    ├─网络流
│    │    ├─最大流
│    │    │    ├─sap
│    │    │    │    ├─isap
│    │    │    │    └─dinic
│    │    │    └─预流推进
│    │    ├─最小割
│    │    ├─费用流
│    │    │    └─zkw费用流
│    │    └─上下界网络流
│    │          └─二分
│    ├─二分图
│    │    ├─匈牙利
│    │    └─km算法
│    ├─2-SAT
│    └─树
│        ├─lca
│        │    ├─tarjan
│        │    └─倍增
│        └─树链剖分(hld)
│              ├─点分治
│              └─边分治
├─数据结构
│    ├─基础数据结构
│    │    ├─栈(stack)
│    │    ├─链表(list)
│    │    ├─哈希表(hash)
│    │    └─堆(heap)
│    ├─单调栈
│    ├─单调队列
│    ├─块状链表
│    ├─线段树(seg tree)
│    │    ├─主席树
│    │    └─zkw线段树
│    ├─树状数组(bit)
│    ├─平衡树
│    │    ├─treap
│    │    ├─splay
│    │    ├─sbt
│    │    ├─红黑树
│    │    └─AVL树
│    ├─link-cut tree
│    ├─树套树
│    ├─划分树
│    ├─可持久化
│    │    └─可持久化线段树
│    ├─kdtree
│    ├─左偏树
│    ├─仙人掌树
│    ├─喜羊羊树(大雾 or 替罪羊树 =? 朝鲜树)
│    └─朝鲜树
├─计算几何
│    ├─基础
│    └─凸包
├─博弈论
│    └─SG函数
└─其它
    ├─暴力
    ├─贪心
    ├─高精度
    ├─二分
    ├─整体二分
    ├─排序
    ├─stl
    │    ├─set
    │    ├─map
    │    ├─rope
    │    └─priority_queue
    ├─特殊算法
    │    ├─爬山算法
    │    ├─模拟退火
    │    ├─朱刘算法
    │    ├─莫队算法
    │    └─随机增量法
    ├─随机化
    ├─RMQ
    │    └─st
    └─cdq分治

By:iwtwiioi 博客地址:http://www.cnblogs.com/iwtwiioi 转载请说明

你可能感兴趣的:(OI 基础知识)