呕心沥血之作啊...
注:仅供C++选手参考,且仅是OIer的知识点,不保证是ACMer的知识点.
剩余:线性规划、基础数论、多项式相关、计算几何、组合计数...
若有补充,欢迎在评论区补充+喷.
语言基础:
1.头文件
万能头文件#include<bits/stdc++.h>
其它头文件
2.数据类型
整形int,long long
浮点型float,double与long double
字符型char
布尔型bool
3.输入输出
cin与cout
scanf与printf
快读与快输
玄学fread与fwrite
4.顺序结构
5.分支选择结构
if语句
switch语句
6.循环结构
for循环
while循环与do-while循环
循环嵌套
continue和break
7.数组
数组的基本概念
字符数组及一些操作
多维数组
8.函数
模块化函数
函数的嵌套
函数的递归
return和exit
9.结构体struct
结构体的定义
结构体重载
内部成员函数
10.文件操作
freopen重定向
fopen
11.指针
指针的定义
动态分配内存
数组模拟指针
数组的指针
函数的指针
12.模拟
13.其它语法
#define宏定义
inline内联
typedef自定义类型
namespace命名空间
二进制位运算
共用体union
不定参数template<typedef T>
满足一定条件才运行的#ifdef和#endif
基础算法:
1.高精度
加法高精度
减法高精度
乘法高精度
FFT优化大数乘法
除法高精度
2.排序
选择排序
冒泡排序
插入排序
快速排序
线性查找算法BFPRT
归并排序
堆排序
二叉查找树排序
桶排序
计数排序
基数排序
希尔排序
外部排序
多线程睡眠排序
猴子排序
5.暴力枚举
穷举法
枚举优化
4.递推
基础递推
递归的记忆化
一些常用的递推式
矩阵乘法快速幂加速递推
5.深度优先搜索dfs
递归
回溯
可行性剪枝与最优性剪枝
记忆化dfs
非递归的dfs
6.广度优先搜索bfs
基础bfs
bfs判重
7.贪心
贪心策略
贪心的证明
贪心优化
与递推结合的贪心
8.分治
子问题划分
二分查找
二分答案
三分极值
快速幂
二分套二分
动态规划DP:
1.线性DP
DP的最优子结构和无后效性
单进程DP
双进程DP
资源分配类DP
最长递增子序列lis
最长公共子序列lcs
2.背包DP
0-1背包
完全背包
多重背包的二进制拆分优化
二维费用背包
分组背包
有依赖的背包
泛化物品的背包
背包k优解
树上背包
3.区间DP
区间为状态的DP
环状区间DP
4.树形DP
二叉树DP
多叉树DP
基环树DP
5.DAG有向无环图上的DP
拓扑序确定顺序
DAG DP
6.多维DP
从线性到多维的拓展
轮廓线DP
轮廓线状压DP(插头DP)
7.状压DP
二进制压缩状态
n进制压缩状态
枚举子集DP
斯坦纳树
记忆化搜索实现的状压DP
轮廓线状压DP(插头DP)
bitset压缩状态
8.概率DP
与期望结合的概率DP
与组合数学结合的概率DP
9.字符串DP
KMP套DP
trie树上的DP
有限状态自动机上的DP
10.有后效性的处理
高斯消元
最短路
记忆化搜索
11.计数DP
12.数位DP
二进制数位DP
十进制数位DP
N进制数位DP
13.滚动数组优化DP
一维滚动数组优化DP
多维滚动数组优化DP
14.单调性DP
二分优化DP
单调队列优化DP
决策单调栈优化DP
斜率优化DP
旋转卡壳优化DP
15.单峰极值DP
三分优化DP
16.四边形不等式优化DP
四边形不等式优化线性DP
四边形不等式优化区间DP
17.数据结构优化DP
前缀和优化DP
并查集优化DP
堆优化DP
树状数组优化DP
线段树优化DP
单调队列单调栈优化DP
平衡树优化DP
树套树优化DP
cdq分治优化DP
18.斜率DP
斜率优化DP
动态凸包优化DP
19.矩阵乘法快速幂优化DP
20.倍增优化DP
ST表
21.DP套DP
用DP来转移
22.其它DP优化
与贪心结合的DP
离散化优化DP
离线处理DP
寻址优化DP
改变状态优化DP
搜索:
1.深度优先搜索dfs
递归求解
回溯
最优性剪枝
可行性剪枝
其它剪枝
深搜记忆化
非递归人工栈dfs
2.广度优先搜索bfs
bfs判重
双向bfs
优先队列bfs
启发式bfs
3.迭代加深搜索
限制层数的dfs
启发式迭代加深IDA*
4.启发式搜索A*
基于bfs的A*
基于迭代加深的IDA*
5.对抗搜索
minimax极大极小搜索
alpha-beta优化
6.舞蹈链DLX算法
线性数据结构:
1.数组
一维数组
多维数组
可持久化数组
2.栈
普通栈
单调栈
可持久化栈
3.队列
普通队列
双端队列
单调队列
优先队列
循环队列
可持久化队列
4.链表
普通链表
块状链表
跳表
可持久化链表
5.hash哈希表
hash思想
除法散列
乘法散列
平方散列
拉链法处理冲突
线性探测法处理冲突
再次散列法处理冲突
字符串hash
基础图论:
1.图的概念
点和边
点权和边权
有向图和无向图
2.图的存储
邻接矩阵
邻接表
边表
链式前向星
3.图的遍历
图的深度优先遍历dfs
图的广度优先遍历bfs
4.欧拉路
一笔画问题
无向图的欧拉路
有向图的欧拉路
欧拉图
5.哈密顿路
哈密顿路
哈密顿回路
6.有向图的连通性
强连通分量
有向图的必经点和必经边
2-SAT问题
7.无向图连通性
割点割边
点双连通分量和边双连通分量
8.最短路
floyd算法
dijkstra算法及其堆优化和线段树优化
Johnson算法
Bellman-Ford算法
SPFA算法以及各种优化
A*求最短路
k短路
差分约束
9.生成树
prim算法及其堆优化
kruskal算法
次小生成树
k小生成树
生成树计数(Matrix-tree定理)
最优比例生成树
最小瓶颈生成树
特殊生成树
10.特殊图
菊花图
网格图
平面图与对偶图
11.拓扑排序
普通拓扑排序
字典序最小的拓扑排序
12.最小平均值环
13.弦图
弦图
完美消除序列
lexBFS算法
MCS最大势算法
团与极大团
弦图的最大独立集和最小团覆盖
完美图和伴完美图
区间图
14.仙人掌
普通仙人掌
动态仙人掌
15.一般图匹配
带花树算法
随机匹配
基于线性代数的一般图匹配
堆:
1.二叉堆
普通二叉堆
优先队列
哈夫曼树
哈夫曼森林
可持久化二叉堆
2.可并堆
左偏树
斜堆
二项堆
配对堆
斐波那契堆
可持久化可并堆
随机堆
线段树树状数组:
1.树状数组
树状数组支持单点修改区间查询
树状数组支持区间修改单点查询
树状数组支持区间修改区间查询
树状数组查询极值
可持久化树状数组
2.普通线段树
线段树基础
lazy-tag懒标记
多个tag时的处理
权值线段树
时间线段树
二维线段树
矩阵树
3.黑科技线段树:
zkw线段树
李超线段树
吉司机线段树
32叉线段树
4.线段树技巧
线段树分裂与合并
线段树动态开点
离散化
5.可持久化线段树
静态主席树
动态主席树
6.划分树与归并树
划分树
归并树
树上操作:
1.树的最近公共祖先lca
倍增lca
tarjan求lca
RMQ与lca之间的转化
加减1RMQ
树剖求lca
树上差分
虚树
2.将树上问题转化为序列问题
树的dfs序
树链剖分(重链剖分与长链剖分)
3.树的重心和直径
树的重心
树形DP求树的直径
两遍bfs求树的直径
4.树分治
点分治
边分治
链分治
动态树分治
5.多叉树转二叉树
6.prufer序列
7.基环树
基环树的概念
外向基环树
基环树的重心及直径
9.最小树形图(朱刘算法)
网络流与二分图:
1.最大流
最大流的概念
Ford-Fulkerson算法
Edmonds-Karp算法
dinic算法及其当前弧优化
ISAP算法及其断层优化
LPP预留推进算法
HLPP最高标号预流推进算法
Push-relabel algorithm with FIFO vertex selection rule前置标号预流推进算法
Push-relabel algorithm with dynamic trees动态树优化预流推进算法
KRT算法
有上下界的最大流
2.费用流
1.费用流的概念
2.费用流的Edmonds-Karp算法
3.zkw费用流算法
4.最小费用可行流
5.线性规划转费用流
3.最小割
最小割的概念
最大流最小割定理
最小割树
4.二分图
二分图的概念
二分图的判定
稳定婚姻问题
5.二分图最大匹配
KM算法(匈牙利算法)
与最大流之间的转化
6.二分图的模型
二分图最小顶点覆盖
二分图最大独立集
二分图点权最大独立集
7.其它网络流模型
最小路径覆盖
最大权闭合子图
最小路径边覆盖
8.建图的优化
RMQ优化建图
线段树优化建图
树剖优化建图
9.方案唯一性
平衡树:
1.二叉搜索树
2.treap树堆
旋转
代替rand()
普通treap
非旋treap(fhq)
可持久化treap
treap分裂与合并
线性构造
3.splay伸展树
单旋splay
双旋splay
splay支持lazy-tag
splay的合并与分裂
splay的启发式合并
Link-Cut Tree动态树
可持久化LCT
由上至下旋转的splay
玄学splay
top tree
4.Size Banlanced Tree节点大小平衡树
标准SBT
退化SBT
5.红黑树
普通红黑树
红黑树的分裂与合并
简化红黑树(AA树)
简化红黑树(LLRB)
基于重构的可持久化红黑树
双红修正
双黑修正
6.AVL树
普通AVL树
AVL树支持分裂合并
可持久化AVL
7.替罪羊树
重构
基于重构的平衡树
替罪羊树支持部分可持久化
简化替罪羊朝鲜树
8.leafy tree
普通leafy tree
基于旋转的leafy tree
基于重构的leafy tree
leafy tree支持合并与分裂
可持久化leafy tree
9.用权值线段树代替的平衡树
普通权值线段树
离散化
强制在线处理
字符串:
1.字符串匹配算法KMP
普通KMP算法
扩展KMP算法
2.字典树Trie
Trie树
xor异或值Trie树
可持久化Trie树
Trie图(AC自动机)
Fail树
4.后缀相关
后缀数组SA(倍增算法和DC3算法)
后缀树
后缀自动机SAM
后缀平衡树
后缀仙人掌
5.有限状态自动机
6.简单密码学
7.回文串
manacher算法
回文自动机
8.最长公共前缀LCP
9.字符串hash
10.最小表示法
随机数:
1.随机算法
2.模拟退火算法
物理退火过程
模拟退火算法
3.爬山算法
4.遗传算法
生物进化论
模拟进化
5.粒子群算法
技巧与思想:
1.莫队
普通莫队
树上莫队
带修莫队
回滚莫队
2.cdq分治与整体二分
按照时间划分的分治
按照操作划分的分治
cdq分治套数据结构
cdq分治套cdq分治
3.倍增
LCA问题的倍增算法
RMQ问题的ST算法
4.二分
普通二分
二分的嵌套
5.三分
普通三分
三分的嵌套
6.位运算
7.离散化
无重复元素的离散化
有重复元素的离散化
8.分块
序列分块
树上分块
块状链表
可持久化块状链表
9.图的拆点拆边
拆点
拆边
10.数列前缀和与差分
前缀和
多维前缀和
差分
树上差分
11.启发式合并
12.哈夫曼编码
13.打表
普通打表
分段打表
打表找规律
14.卡常数
位运算加速
continue加速
时钟周期的知识
嵌入汇编语言
结构联合(使用结构体struct和联合体union)
指针和动态分配内存的取舍
分支预测
高维数组的使用
15.lzn树
其它算法与数据结构:
1.k-d tree空间划分树
2.分数规划
0-1分数规划
一般分数规划
3.并查集
普通并查集
路径压缩
带权并查集
支持删除的并查集
可持久化并查集
4.博弈论
Nim游戏
博弈转化为图论
SG函数
博弈树及alpha-beta优化
树形图博弈
5.概率期望
概率
期望
概率DP
高斯消元辅助
6.笛卡尔树
与treap相似
线性构造
STL标准算法库:
1.迭代器iterator
STL使用的迭代器
定义一个迭代器iterator
2.线性数据结构系列
动态数组vector
链表list
单向链表forward_list
队列queue
双端队列deque
栈stack
自带1/32常数的bitset
拥有两个元素的结构体pair
3.优先队列priority_queue
优先队列的使用
自定义优先级
懒惰删除法
4.二分函数
lower_bound
upper_bound
5.排序sort
从小到大的sort
自定义优先级
6.字符串
string的使用
rope(加强版string)
7.集合
有序集合set
有序可重集合multiset
无序集合unordered_set
无序可重集合unordered_multiset
自定义优先级
8.关联数组(映射)
有序映射map
有序多重映射multimap
无序映射unordered_map
无序多重映射unordered_multimap
9.数组上的操作
数组转置reverse
全排列函数next_permutation
注:仅供C++选手参考,且仅是OIer的知识点,不保证是ACMer的知识点.
剩余:线性规划、基础数论、多项式相关、计算几何、组合计数...
若有补充,欢迎在评论区补充+喷.
语言基础:
1.头文件
万能头文件#include<bits/stdc++.h>
其它头文件
2.数据类型
整形int,long long
浮点型float,double与long double
字符型char
布尔型bool
3.输入输出
cin与cout
scanf与printf
快读与快输
玄学fread与fwrite
4.顺序结构
5.分支选择结构
if语句
switch语句
6.循环结构
for循环
while循环与do-while循环
循环嵌套
continue和break
7.数组
数组的基本概念
字符数组及一些操作
多维数组
8.函数
模块化函数
函数的嵌套
函数的递归
return和exit
9.结构体struct
结构体的定义
结构体重载
内部成员函数
10.文件操作
freopen重定向
fopen
11.指针
指针的定义
动态分配内存
数组模拟指针
数组的指针
函数的指针
12.模拟
13.其它语法
#define宏定义
inline内联
typedef自定义类型
namespace命名空间
二进制位运算
共用体union
不定参数template<typedef T>
满足一定条件才运行的#ifdef和#endif
基础算法:
1.高精度
加法高精度
减法高精度
乘法高精度
FFT优化大数乘法
除法高精度
2.排序
选择排序
冒泡排序
插入排序
快速排序
线性查找算法BFPRT
归并排序
堆排序
二叉查找树排序
桶排序
计数排序
基数排序
希尔排序
外部排序
多线程睡眠排序
猴子排序
5.暴力枚举
穷举法
枚举优化
4.递推
基础递推
递归的记忆化
一些常用的递推式
矩阵乘法快速幂加速递推
5.深度优先搜索dfs
递归
回溯
可行性剪枝与最优性剪枝
记忆化dfs
非递归的dfs
6.广度优先搜索bfs
基础bfs
bfs判重
7.贪心
贪心策略
贪心的证明
贪心优化
与递推结合的贪心
8.分治
子问题划分
二分查找
二分答案
三分极值
快速幂
二分套二分
动态规划DP:
1.线性DP
DP的最优子结构和无后效性
单进程DP
双进程DP
资源分配类DP
最长递增子序列lis
最长公共子序列lcs
2.背包DP
0-1背包
完全背包
多重背包的二进制拆分优化
二维费用背包
分组背包
有依赖的背包
泛化物品的背包
背包k优解
树上背包
3.区间DP
区间为状态的DP
环状区间DP
4.树形DP
二叉树DP
多叉树DP
基环树DP
5.DAG有向无环图上的DP
拓扑序确定顺序
DAG DP
6.多维DP
从线性到多维的拓展
轮廓线DP
轮廓线状压DP(插头DP)
7.状压DP
二进制压缩状态
n进制压缩状态
枚举子集DP
斯坦纳树
记忆化搜索实现的状压DP
轮廓线状压DP(插头DP)
bitset压缩状态
8.概率DP
与期望结合的概率DP
与组合数学结合的概率DP
9.字符串DP
KMP套DP
trie树上的DP
有限状态自动机上的DP
10.有后效性的处理
高斯消元
最短路
记忆化搜索
11.计数DP
12.数位DP
二进制数位DP
十进制数位DP
N进制数位DP
13.滚动数组优化DP
一维滚动数组优化DP
多维滚动数组优化DP
14.单调性DP
二分优化DP
单调队列优化DP
决策单调栈优化DP
斜率优化DP
旋转卡壳优化DP
15.单峰极值DP
三分优化DP
16.四边形不等式优化DP
四边形不等式优化线性DP
四边形不等式优化区间DP
17.数据结构优化DP
前缀和优化DP
并查集优化DP
堆优化DP
树状数组优化DP
线段树优化DP
单调队列单调栈优化DP
平衡树优化DP
树套树优化DP
cdq分治优化DP
18.斜率DP
斜率优化DP
动态凸包优化DP
19.矩阵乘法快速幂优化DP
20.倍增优化DP
ST表
21.DP套DP
用DP来转移
22.其它DP优化
与贪心结合的DP
离散化优化DP
离线处理DP
寻址优化DP
改变状态优化DP
搜索:
1.深度优先搜索dfs
递归求解
回溯
最优性剪枝
可行性剪枝
其它剪枝
深搜记忆化
非递归人工栈dfs
2.广度优先搜索bfs
bfs判重
双向bfs
优先队列bfs
启发式bfs
3.迭代加深搜索
限制层数的dfs
启发式迭代加深IDA*
4.启发式搜索A*
基于bfs的A*
基于迭代加深的IDA*
5.对抗搜索
minimax极大极小搜索
alpha-beta优化
6.舞蹈链DLX算法
线性数据结构:
1.数组
一维数组
多维数组
可持久化数组
2.栈
普通栈
单调栈
可持久化栈
3.队列
普通队列
双端队列
单调队列
优先队列
循环队列
可持久化队列
4.链表
普通链表
块状链表
跳表
可持久化链表
5.hash哈希表
hash思想
除法散列
乘法散列
平方散列
拉链法处理冲突
线性探测法处理冲突
再次散列法处理冲突
字符串hash
基础图论:
1.图的概念
点和边
点权和边权
有向图和无向图
2.图的存储
邻接矩阵
邻接表
边表
链式前向星
3.图的遍历
图的深度优先遍历dfs
图的广度优先遍历bfs
4.欧拉路
一笔画问题
无向图的欧拉路
有向图的欧拉路
欧拉图
5.哈密顿路
哈密顿路
哈密顿回路
6.有向图的连通性
强连通分量
有向图的必经点和必经边
2-SAT问题
7.无向图连通性
割点割边
点双连通分量和边双连通分量
8.最短路
floyd算法
dijkstra算法及其堆优化和线段树优化
Johnson算法
Bellman-Ford算法
SPFA算法以及各种优化
A*求最短路
k短路
差分约束
9.生成树
prim算法及其堆优化
kruskal算法
次小生成树
k小生成树
生成树计数(Matrix-tree定理)
最优比例生成树
最小瓶颈生成树
特殊生成树
10.特殊图
菊花图
网格图
平面图与对偶图
11.拓扑排序
普通拓扑排序
字典序最小的拓扑排序
12.最小平均值环
13.弦图
弦图
完美消除序列
lexBFS算法
MCS最大势算法
团与极大团
弦图的最大独立集和最小团覆盖
完美图和伴完美图
区间图
14.仙人掌
普通仙人掌
动态仙人掌
15.一般图匹配
带花树算法
随机匹配
基于线性代数的一般图匹配
堆:
1.二叉堆
普通二叉堆
优先队列
哈夫曼树
哈夫曼森林
可持久化二叉堆
2.可并堆
左偏树
斜堆
二项堆
配对堆
斐波那契堆
可持久化可并堆
随机堆
线段树树状数组:
1.树状数组
树状数组支持单点修改区间查询
树状数组支持区间修改单点查询
树状数组支持区间修改区间查询
树状数组查询极值
可持久化树状数组
2.普通线段树
线段树基础
lazy-tag懒标记
多个tag时的处理
权值线段树
时间线段树
二维线段树
矩阵树
3.黑科技线段树:
zkw线段树
李超线段树
吉司机线段树
32叉线段树
4.线段树技巧
线段树分裂与合并
线段树动态开点
离散化
5.可持久化线段树
静态主席树
动态主席树
6.划分树与归并树
划分树
归并树
树上操作:
1.树的最近公共祖先lca
倍增lca
tarjan求lca
RMQ与lca之间的转化
加减1RMQ
树剖求lca
树上差分
虚树
2.将树上问题转化为序列问题
树的dfs序
树链剖分(重链剖分与长链剖分)
3.树的重心和直径
树的重心
树形DP求树的直径
两遍bfs求树的直径
4.树分治
点分治
边分治
链分治
动态树分治
5.多叉树转二叉树
6.prufer序列
7.基环树
基环树的概念
外向基环树
基环树的重心及直径
9.最小树形图(朱刘算法)
网络流与二分图:
1.最大流
最大流的概念
Ford-Fulkerson算法
Edmonds-Karp算法
dinic算法及其当前弧优化
ISAP算法及其断层优化
LPP预留推进算法
HLPP最高标号预流推进算法
Push-relabel algorithm with FIFO vertex selection rule前置标号预流推进算法
Push-relabel algorithm with dynamic trees动态树优化预流推进算法
KRT算法
有上下界的最大流
2.费用流
1.费用流的概念
2.费用流的Edmonds-Karp算法
3.zkw费用流算法
4.最小费用可行流
5.线性规划转费用流
3.最小割
最小割的概念
最大流最小割定理
最小割树
4.二分图
二分图的概念
二分图的判定
稳定婚姻问题
5.二分图最大匹配
KM算法(匈牙利算法)
与最大流之间的转化
6.二分图的模型
二分图最小顶点覆盖
二分图最大独立集
二分图点权最大独立集
7.其它网络流模型
最小路径覆盖
最大权闭合子图
最小路径边覆盖
8.建图的优化
RMQ优化建图
线段树优化建图
树剖优化建图
9.方案唯一性
平衡树:
1.二叉搜索树
2.treap树堆
旋转
代替rand()
普通treap
非旋treap(fhq)
可持久化treap
treap分裂与合并
线性构造
3.splay伸展树
单旋splay
双旋splay
splay支持lazy-tag
splay的合并与分裂
splay的启发式合并
Link-Cut Tree动态树
可持久化LCT
由上至下旋转的splay
玄学splay
top tree
4.Size Banlanced Tree节点大小平衡树
标准SBT
退化SBT
5.红黑树
普通红黑树
红黑树的分裂与合并
简化红黑树(AA树)
简化红黑树(LLRB)
基于重构的可持久化红黑树
双红修正
双黑修正
6.AVL树
普通AVL树
AVL树支持分裂合并
可持久化AVL
7.替罪羊树
重构
基于重构的平衡树
替罪羊树支持部分可持久化
简化替罪羊朝鲜树
8.leafy tree
普通leafy tree
基于旋转的leafy tree
基于重构的leafy tree
leafy tree支持合并与分裂
可持久化leafy tree
9.用权值线段树代替的平衡树
普通权值线段树
离散化
强制在线处理
字符串:
1.字符串匹配算法KMP
普通KMP算法
扩展KMP算法
2.字典树Trie
Trie树
xor异或值Trie树
可持久化Trie树
Trie图(AC自动机)
Fail树
4.后缀相关
后缀数组SA(倍增算法和DC3算法)
后缀树
后缀自动机SAM
后缀平衡树
后缀仙人掌
5.有限状态自动机
6.简单密码学
7.回文串
manacher算法
回文自动机
8.最长公共前缀LCP
9.字符串hash
10.最小表示法
随机数:
1.随机算法
2.模拟退火算法
物理退火过程
模拟退火算法
3.爬山算法
4.遗传算法
生物进化论
模拟进化
5.粒子群算法
技巧与思想:
1.莫队
普通莫队
树上莫队
带修莫队
回滚莫队
2.cdq分治与整体二分
按照时间划分的分治
按照操作划分的分治
cdq分治套数据结构
cdq分治套cdq分治
3.倍增
LCA问题的倍增算法
RMQ问题的ST算法
4.二分
普通二分
二分的嵌套
5.三分
普通三分
三分的嵌套
6.位运算
7.离散化
无重复元素的离散化
有重复元素的离散化
8.分块
序列分块
树上分块
块状链表
可持久化块状链表
9.图的拆点拆边
拆点
拆边
10.数列前缀和与差分
前缀和
多维前缀和
差分
树上差分
11.启发式合并
12.哈夫曼编码
13.打表
普通打表
分段打表
打表找规律
14.卡常数
位运算加速
continue加速
时钟周期的知识
嵌入汇编语言
结构联合(使用结构体struct和联合体union)
指针和动态分配内存的取舍
分支预测
高维数组的使用
15.lzn树
其它算法与数据结构:
1.k-d tree空间划分树
2.分数规划
0-1分数规划
一般分数规划
3.并查集
普通并查集
路径压缩
带权并查集
支持删除的并查集
可持久化并查集
4.博弈论
Nim游戏
博弈转化为图论
SG函数
博弈树及alpha-beta优化
树形图博弈
5.概率期望
概率
期望
概率DP
高斯消元辅助
6.笛卡尔树
与treap相似
线性构造
STL标准算法库:
1.迭代器iterator
STL使用的迭代器
定义一个迭代器iterator
2.线性数据结构系列
动态数组vector
链表list
单向链表forward_list
队列queue
双端队列deque
栈stack
自带1/32常数的bitset
拥有两个元素的结构体pair
3.优先队列priority_queue
优先队列的使用
自定义优先级
懒惰删除法
4.二分函数
lower_bound
upper_bound
5.排序sort
从小到大的sort
自定义优先级
6.字符串
string的使用
rope(加强版string)
7.集合
有序集合set
有序可重集合multiset
无序集合unordered_set
无序可重集合unordered_multiset
自定义优先级
8.关联数组(映射)
有序映射map
有序多重映射multimap
无序映射unordered_map
无序多重映射unordered_multimap
9.数组上的操作
数组转置reverse
全排列函数next_permutation