同届
chdy
startaidou
Tyouchie
blng
melody
AK-ls
millope
yycdeboke
gcfer
BIGBIGPPT
神犇
zkw
byvoid
hzwer
PoPoQQQ
matrix67
yyb
Tangenter
⚡cdecl⚡
学长
Cydiater
chty
137shoebills
xorex
qywyt
my_snowing
strangedddf
UnicornXi
left_right
Cyxhsa
rain under sea
mdb
jlfeng
toughyt
常用网站
魔方小站
OIer博客
马同学高等数学
懒得画图论的同学有福啦
oeis:The On-Line Encyclopedia of Integer Sequences
在线手写公式识别
NOIp
dqcsm1964
宣传视频
2018年山东科技大学ACM编程竞赛协会纳新宣传视频
2016年成都七中OI队宣传视频
数论
数论知识总结——史诗大作(这是一个flag)
OI数学知识
感受一下无穷的公式
解析几何入门
Dp
状压DP详解(位运算)
背包问题
DP
动态规划初步——各种子序列问题
图论
C++迪杰斯特拉算法求最短路径
图的存储结构之邻接表(详解)
图论中的割点,割边,圈与块
Tarjan
浅析强连通分量(Tarjan和kosaraju)
Tarjan算法:求解图的割点与桥(割边)
双连通分量
tarjan求强连通分量+缩点+割点/割桥(点双/边双)以及一些证明
二分图
二分图基础知识
二分图的最小顶点覆盖,最大独立集,最大团
二分图中对最小顶点覆盖、最小边覆盖、最大独立集的理解
网络流
《最小割模型在信息学竞赛中的应用》
Dinic算法
POJ 2125 Destroying The Graph【最小割】最小花费输出
高级数据结构
主席树——可持续化数组
莫队算法
【教程】简易CDQ分治教程&学习笔记
分治
分治
归并排序的实现
快速幂
字符串处理
后缀数组
计算几何
凸包
其他技巧
FFT
程序人生
雅礼省选游记
世间只此一人,疯狂改变世界
硅谷科技颠覆史
程序员是怎么安排电脑桌面的
优秀程序员的10个习惯
QWQ
oi知识结构图
算法专题
信息学奥赛一本通OJ题解
全网最详细、最深的四类莫队算法讲解
河海大学ACM数论专题
微积分简证
知识清单
OI知识大列表
简单列举OI中的四大毒瘤:
1.图论
2.数学
3.动态规划
4.数据结构
语言基础:
1.头文件
万能头文件#include
其它头文件
2.数据类型
整形
32位int
64位long long
浮点型
普通double
卡精度long double
字符型char
布尔型bool
3.输入输出I/O
cin与cout
scanf与printf
getchar与putchar
字符串I/O
getline(cin,s)
gets与puts
快读与快输
fread与fwrite
4.顺序结构
5.分支选择结构
if语句
switch语句
6.循环结构
for循环
while循环与do-while循环
循环嵌套
continue和break
7.数组
数组
字符数组
内置操作
多维数组
8.函数
模块化函数
函数的嵌套
函数的递归
return和exit
9.结构体struct
结构体定义
内部成员函数
普通成员函数
结构体重载
构造函数
10.文件操作
freopen重定向
fopen
11.指针
指针定义
动态分配内存
数组指针
函数指针
数组模拟指针
**12.位运算
基本位运算
异或xor的性质
枚举子集**
13.模拟
14.其它语法
#define宏定义
inline内联
typedef自定义类型
namespace命名空间
共用体union
template
#ifdef和#endif
15.汇编语言嵌入
16.卡常数
基础算法:
1.进制转换
十进制转N进制
N进制转十进制
N进制转K进制
2.高精度
加法高精度
减法高精度
乘法高精度
高精乘单精
高精乘高精
Karatsuba算法
FFT优化
除法高精度
高精除单精
高精除高精
二分优化
高精度开根
压位高精度
3.排序
基于比较的排序
选择排序
堆优化
冒泡排序
插入排序
折半插入排序
链表插入排序
希尔排序
快速排序
线性查找算法BFPRT
归并排序
2路归并
多路归并
败者树优化
基于桶的排序
桶排序
计数排序
基数排序
4.暴力枚举
穷举法
枚举优化
5.递推
基础递推
递归的记忆化
Berlekamp-Massey算法
6.贪心
GarsiaWachs算法
搜索:
1.深度优先搜索dfs
递归求解
回溯
剪枝
最优性剪枝
可行性剪枝
其它剪枝
深搜记忆化
非递归人工栈dfs
2.广度优先搜索bfs
bfs判重
bfs优化
双向bfs
双端队列bfs
优先队列bfs
3.迭代加深搜索
限制层数的dfs
启发式迭代加深IDA*
4.启发式搜索A*
基于bfs的A*
基于迭代加深的IDA*
5.对抗搜索
博弈树
minimax极大极小搜索
alpha-beta优化
6.舞蹈链DLX算法
7.分支定界算法
8.迭代法
基础迭代
牛顿迭代法
倍增与分治:
1.倍增
序列倍增
ST表
树上倍增
倍增求LCA
**2.二分
二分
二分的嵌套
wqs二分
实数二分**
3.三分
三分极值
三分的嵌套
fibonacci三分
实数三分
5.cdq分治
cdq分治写法
快排写法
归并写法
用于DP
cdq分治套数据结构
cdq分治的嵌套
6.整体二分
**动态规划模型:
1.线性DP
2.背包DP
基本背包
0-1背包
完全背包
多重背包
二维费用背包
背包拓展
分组背包
有依赖的背包
泛化物品的背包
背包k优解
树上背包
3.区间DP
区间为状态的DP
环状区间DP
4.树形DP
树上DP
二叉树DP
多叉树DP
基环树DP
5.有向无环图DAG上的DP
拓扑序DP
最短路**
6.多维DP
棋盘DP
多维DP
轮廓线DP
轮廓线状压DP
**7.状压DP
压缩状态
二进制压缩状态**
N进制压缩状态
**枚举子集DP**
斯坦纳树
轮廓线状压DP
**8.概率期望DP**
9.字符串DP
KMP套DP
trie树DP
自动机DP
**10.记忆化搜索
搜索记忆化
状态压缩**
11.有后效性DP
高斯消元
最短路
12.计数DP
13.数位DP
二进制数位DP
十进制数位DP
N进制数位DP
14.DP套DP
用DP来转移
动态规划优化:
**1.滚动数组
一维滚动数组
多维滚动数组
2.决策单调性
二分优化DP
单调队列优化DP
决策单调栈优化DP**
3.单峰极值
三分优化DP
4.四边形不等式
优化线性DP
优化区间DP
**5.数据结构**
**6.斜率
单调队列维护**
二分维护
平衡树维护
cdq分治维护
**7.矩阵乘法快速幂**
**8.倍增
ST表**
10.其它DP优化
离散化优化DP
离线处理DP
改变状态优化DP
基础图论:
**1.图的存储
邻接矩阵
邻接表
边表
链式前向星
2.图的遍历
图的深度优先遍历dfs
图的广度优先遍历bfs
3.欧拉路
无向图欧拉路
有向图欧拉路
欧拉图**
4.哈密顿路
哈密顿路
哈密顿回路
哈密顿图
**5.有向图连通性
强连通分量
Tarjan算法**
Kosaraju算法
2-SAT问题
最小点基
必经点与必经边
Lenguar-Tarjan算法
支配树
**6.无向图连通性
割点割边
双连通分量
点双连通分量
边双连通分量
7.最短路
任意点最短路
Floyd算法
传递闭包
最小环**
Johnson算法
**单源最短路
Dijkstra算法
堆优化**
A*优化
Bellman-Ford算法
**判环
SPFA算法
优化**
SLF优化
LLL优化
堆优化
栈优化
记忆化搜索
判环
k短路
差分约束系统
最短路树
**8.生成树
最小生成树
Prim算法
堆优化
Kruskal算法**
次小生成树
k小生成树
生成树计数
度限制生成树
最优比例生成树
最小瓶颈生成树
9.最小树形图
朱刘算法
10.特殊图
菊花图
网格图
平面图与对偶图
**分层图**
**11.拓扑排序**
12.最小平均值环
13.弦图
弦图
完美消除序列
lexBFS算法
MCS最大势算法
最大独立集
团与极大团
Bron-Kerbosch算法
最小团覆盖
极大团树
完美图和伴完美图
区间图
树上算法:
**1.树的最近公共祖先lca
LCA算法
倍增lca
Tarjan求lca**
加减1RMQ求lca
树剖求lca
**树上差分**
虚树
**2.树的重心和直径
重心**
静态树直径
树形DP
两遍bfs
线段树维护
**3.多叉树转二叉树**
4.树分治
点分治
动态点分治(点分树)
边分治
重建树
链分治
动态DP
基环树与仙人掌:
1.基环树
重心
直径
2.基环树DP
3.圆方树算法
4.仙人掌DP
仙人掌的重心
仙人掌的直径
仙人掌最短路
5.仙人掌上LCA
虚仙人掌
6.仙人掌分治
仙人掌点分治
7.静态仙人掌
dfs序
仙人掌链剖分
8.动态仙人掌
Link-Cut Cactus
top cactus
网络流与二分图:
1.最大流
Ford-Fulkerson算法
Edmonds-Karp算法
Dinic算法
当前弧优化
ISAP算法
当前弧优化
断层优化
HLPP算法
2.费用流
Edmonds-Karp算法
zkw费用流
Primal-Dual算法
消圈算法
3.有上下界的网络流
有上下界的最大流
有上下界的费用流
有上下界的可行流
4.最小割
最大流最小割定理
最小割树
Gomory-Hu Tree
等价流树
Gusfield算法
全局最小割
Stoer-Wagner算法
Karger算法
5.二分图
二分图的判定
二分图最大匹配
KM匈牙利算法
最大流求解
二分图带权匹配
KM匈牙利算法
费用流求解
稳定婚姻问题
7.二分图的模型
最小顶点覆盖
Konig定理
最大独立集
点权最大独立集
最小路径点覆盖
匹配必经点与必经边
8.网络流模型
最大权闭合子图
最小路径边覆盖
9.优化建图
10.方案唯一性
11.一般图匹配
带花树算法
随机匹配
线性代数匹配
线性数据结构:
1.数组
一维数组
多维数组
可持久化
2.栈
普通栈
单调栈
可持久化
表达式
表达式转化
表达式求值
3.队列
队列
特殊队列
双端队列
单调队列
优先队列
循环队列
可持久化
4.链表
普通链表
特殊链表
双向链表
循环链表
可持久化
5.跳表(时代的眼泪)
跳表
可持久化
6.hash
散列方式
除法散列
乘法散列
平方散列
自然溢出散列
康托展开
处理冲突
**拉链法**
线性探测法
再次散列法
特殊hash
树hash
**字符串hash**
堆:
1.二叉堆
**普通二叉堆**
优先队列
Huffman
Huffman编码
Huffman树
Huffman森林
可持久化
2.左偏树
斜堆
左偏树
可持久化左偏树
3.二项堆
二项堆
可持久化二项堆
4.配对堆
配对堆
Fibonacci堆
线段树树状数组:
**1.树状数组
树状数组
二维树状数组**
树状数组上倍增
可持久化
2.普通线段树
线段树基础
lazy-tag
lazy-tag懒标记
多个tag时的处理
永久化标记
权值线段树
3.黑科技线段树:
zkw线段树
李超线段树
吉司机线段树
多叉线段树
四叉树
32叉线段树
4.线段树技巧
线段树合并
线段树动态开点
线段树分治
线段树上二分
5.划分树与归并树(时代的眼泪)
划分树
归并树
6.主席树
可持久化线段树
树状数组维护
平衡树:
1.二叉搜索树
2.treap树堆
treap
线性构造
非旋treap(fhq treap)
分裂与合并
可持久化
3.splay伸展树
旋转
单旋splay
双旋splay
分裂与合并
4.Size Banlanced Tree
标准SBT
退化SBT
可持久化
5.红黑树
Red-Black Tree
分裂与合并
变种
AA树
LLRB
修正
双红修正
双黑修正
可持久化
6.AVL树
AVL树
分裂与合并
可持久化
7.替罪羊树
替罪羊树
朝鲜树
部分可持久化
8.leafy tree
二叉查找树
平衡方式
基于旋转
基于重构
分裂与合并
可持久化
9.用权值线段树代替的平衡树
权值线段树
离散化
动态开点
可持久化
10.基于字符串的平衡树
后缀平衡树
0/1 trie
动态树:
**1.dfs序
dfs序**
size子树大小
Euler-Tour Tree
2.树链剖分
剖分方式
重链剖分
长链剖分
树链合并
3.Link-Cut Tree
Link-Cut Tree
基础平衡树
基于splay
基于treap
基于其他平衡树
LCT维护子树询问
4.Link-Cut Memphis
5.全局平衡二叉树
6.top tree
7.Rake-Compress Tree
8.树上分块
分块方式
dfs序分块
子树大小size分块
其它准则分块
块状树
字符串:
1.字符串匹配算法KMP
**普通KMP算法**
扩展KMP算法
KMP自动机
**最小循环串**
2.字典树trie
**trie树**
基于位的trie
异或值trie树
0/1 trie树
可持久化
AC自动机
trie图
fail树
3.后缀数组
构造算法
倍增算法
DC3算法
波兰表
最长公共前缀LCP
4.后缀拓展
后缀树
后缀自动机SAM
后缀平衡树
后缀仙人掌
5.有限状态自动机
正则表达式
自动机
确定自动机DFA
不确定自动机NFA
6.简单密码学
7.回文串
manacher算法
回文自动机
回文树
可持久化
8.字符串hash
9.最小表示法
10.带可选字符的多串匹配
Shift-And算法
Shift-Or算法
11.Huffman编码
其它数据结构:
1.分块
序列分块
块状链表
可持久化
可持久化分块
可持久化块状链表
树上分块
Method of Four Russians
2.莫队
普通莫队
回滚莫队
带修莫队
树上莫队
3.空间划分树
k-d tree
4.并查集
并查集
**优化
按秩合并
路径压缩**
kruskal重构树
维护信息
并查集扩展域
带权并查集
可撤销并查集
可持久化
可删除并查集
5.笛卡尔树
与treap相似
线性构造
RMQ问题的线性算法
6.竞赛树
胜者树
败者树
7.树套树
数论基础:
1.素数
素数判定
Miller-Rabbin素数测试
2.数的分解
唯一分解定理
约数个数推论
约数和推论
质因数分解
试除法
Pollard Rho算法
3.筛法
埃式筛法
线性筛法
4.威尔逊定理
5.欧拉函数
函数求解
根号算法
线性筛法
欧拉定理
推论
费马小定理
6.最大公因数gcd
欧几里得算法gcd
更相减损术
扩展欧几里得exgcd
斐蜀定理
类欧几里得算法
7.逆元
费马小定理
欧拉定理
扩展欧几里得
线性求逆元
8.模方程
模意义下开根
模意义下log
9.中国剩余定理CRT
中国剩余定理CRT
exgcd求解
10.Baby step,Giant step算法
BSGS算法
扩展BSGS算法
11.原根
原根、阶
离散对数
12.积性函数
欧拉函数
Mobius函数
约数
约数和
约数个数
刘维尔函数
Dirichlet特征
13.Mobius反演
Mobius函数
Mobius反演
14.Dirichlet卷积
Dirichlet卷积
筛法上的应用
杜教筛
洲阁筛
min-25筛
15.二次剩余
二次剩余
二次互反律
16.非线性丢番图方程
毕达哥拉斯三元组
平方和
Pell方程
同余数
17.黄金分割
黄金分割比
Fibnacci数
18.四平方和定理
组合计数:
1.计数原理
基本原理
分类加法原理
分步乘法原理
鸽巢原理
容斥原理
补集转化
Ramsey原理
DeMorgan定理
2.排列与组合
排列
选排列
错位排列
圆排列
组合
3.二项式定理
二项展开式
组合与杨辉三角
4.组合数取模
Lucas定理
扩展Lucas定理
5.生成树计数
Prufer序列
Cayley定理
Matrix-Tree定理
6.组合中的数
Catalan数
Stirling数
第一类Stirling数
第二类Stirling数
伯努利数
自然数幂和
Bell数
Ramsey数
7.生成函数
普通生成函数
指数型生成函数
Ferrers图像
8.稳定婚姻问题
线性代数:
1.线性方程组
高斯消元
带模高斯消元
异或高斯消元
LU分解法
2.矩阵
矩阵构造
矩阵求逆
3.矩阵乘法
矩阵乘法快速幂
矩阵乘法优化
Strassen算法
循环矩阵
3.行列式
行列式与矩阵
Binet-Cauchy定理
行列式的性质
余子式
代数余子式
4.特殊矩阵
范德蒙矩阵
基尔霍夫矩阵
Matrix-Tree矩阵树定理
5.数字方阵问题
模拟法
归纳法
7.线性空间
基的概念
线性基
多项式相关:
1.多项式变换
傅里叶变换
快速傅里叶变换FFT
快速数论变换NTT
CRT合并
任意模数FFT
分治FFT
快速沃尔什变换FWT
快速莫比乌斯变换FMT
2.多项式除法
多项式求逆
伯努利数
多项式除法
多项式取模
3.其它多项式操作
多项式开根
多项式log
多项式exp
多项式快速幂
多点求值
快速插值
4.因式
因式分解
多项式的整除性质
因式定理
最大公因式
5.秦九韶算法
计算几何:
1.点
点的存储
最近点对
2.向量
向量的存储
点积与叉积
向量旋转
仿射变换与矩阵
3.多边形
多边形的面积
点在多边形内的判定
凸多边形
点在凸多边形内的判定
凸多边形交
4.整点多边形
Pick定理
5.线段
线段求交
6.凸包
求凸包
枚举法
分治法求凸包
Jarvis步进法
Graham扫描法
Melkman算法
维护凸包
7.极角
极角排序
8.旋转卡壳
9.半交平面
10.剖分
梯形剖分
三角形剖分
Delaunay算法
11.扫描线算法
矩阵
矩阵面积并
矩阵面积交
矩阵周长并
三角形面积并
12.圆
圆的反演
最小圆覆盖
圆面积并
几何法
Simpson积分法
最小外接圆
13.平面图与对偶图
平面图
平面嵌入
偶图
偶图判定
偶图的最大匹配
偶图的最小覆盖
偶图的最佳匹配
14.立体计算几何
其他数学:
1.博弈论
博弈转化为图论
SG函数
组合游戏
SG函数
SG定理
2.概率期望
朴素贝叶斯分类
概率与期望性质
概率DP
概率方程
3.线性规划
单纯形法
对偶原理
有界变量
4.0-1分数规划
二分法
Dinkelbach算法
5.群论
群
置换群
Burnside引理
Polya定理
拟阵
6.拉格朗日乘子法
7.基础微积分
极限思想与导数
洛必达法则
微分
微分
微分中值定理
积分
积分与定积分
simpson积分
泰勒展开
微分方程
常微分方程
8.级数
幂级数
傅里叶级数
交错级数
调和级数
随机数:
1.随机数生成
rand()
手动构造
梅森旋转法
线性同余法
2.随机算法
随机增量法
3.模拟退火
4.爬山算法
5.粒子群算法
6.遗传算法
其它算法:
1.离散化
无重复元素
有重复元素
2.离线
3.图的点边转化
拆点
拆边
4.数列前缀和与差分
前缀和
多维前缀和
差分
树上差分
多维差分
5.打表
普通打表
打表找规律
分段打表
6.lzn树
7.meet in the middle
8.精度问题
整数处理
long long
unsigned
小数处理
long double
eps精度处理
分数类
9.启发式合并
dsu on a tree
数据结构合并
平衡树合并
并查集合并
可持久化线段树合并
trie树合并
10.二进制分组
STL标准算法库:
1.迭代器iterator
STL迭代器
迭代器定义
2.神奇结构体
一对元素pair
复数complex
3.线性数据结构系列
动态数组vector
链表list
单向链表forward_list
队列queue
双端队列deque
栈stack
4.优先队列priority_queue
优先队列
自定义优先级
懒惰删除法
5.二分函数
lower_bound
upper_bound
6.排序sort
从小到大的sort
自定义优先级
stable_sort
7.字符串
string的使用
rope加强版string
8.集合
有序集合set
有序可重集合multiset
无序集合unordered_set
无序可重集合unordered_multiset
自定义优先级
9.关联数组(映射)
有序映射map
有序多重映射multimap
无序映射unordered_map
无序多重映射unordered_multimap
10.数组上的操作
数组转置reverse
全排列函数next_permutation
nth_element
unique
11.位运算
自带1/32常数的bitset
builtin系列
12.pd_ds库
自带hash表
自带堆
自带平衡树
自带字典树
一些跟知识点没什么关系的技巧:
1.思维方式
逆向思维
问题转化
简化问题
类比
分类讨论
按位考虑
数学思想
数形结合
数学归纳法
寻找不变量
增量法
平衡思想
2.考试技巧
分段拿分
暴力+奇怪剪枝
猜测结论
多个错误算法取最优
细节处理
3.对拍
数据生成器
对拍器
4.非完美算法
错误贪心
错误DP
错误建图
错误数论
5.时空复杂度分析
时间复杂度基础
主定理
期望时间复杂度
最坏时间复杂度
势能分析
常数分析
栈空间