同届
chdy
startaidou
Faullest
blng
melody
AK-ls
Tyouchie
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博客
马同学高等数学
懒得画图论的同学有福啦
在线手写公式识别
NOIp
宣传视频
数论
数论知识总结——史诗大作(这是一个flag)
OI数学知识感受一下无穷的公式
解析几何入门
Dp
状压DP详解(位运算)
背包问题
DP
动态规划初步——各种子序列问题
图论
C++迪杰斯特拉算法求最短路径
图的存储结构之邻接表(详解)
图论中的割点,割边,圈与块
Tarjan
浅析强连通分量(Tarjan和kosaraju)
Tarjan算法:求解图的割点与桥(割边)
双连通分量
tarjan求强连通分量+缩点+割点/割桥(点双/边双)以及一些证明
二分图
二分图基础知识
二分图的最小顶点覆盖,最大独立集,最大团
二分图中对最小顶点覆盖、最小边覆盖、最大独立集的理解
网络流
《最小割模型在信息学竞赛中的应用》
Dinic算法
POJ 2125 Destroying The Graph【最小割】最小花费输出
高级数据结构
主席树——可持续化数组
莫队算法
【教程】简易CDQ分治教程&学习笔记
分治
字符串处理
计算几何
其他技巧
程序人生
雅礼省选游记
世间只此一人,疯狂改变世界
硅谷科技颠覆史
程序员是怎么安排电脑桌面的
优秀程序员的10个习惯
QWQ
oi知识结构图
算法专题
信息学奥赛一本通OJ题解
全网最详细、最深的四类莫队算法讲解
河海大学ACM数论专题
微积分简证
知识清单
OI知识大列表
简单列举OI中的四大毒瘤: 1.图论 2.数学 3.动态规划 4.数据结构 语言基础: 1.头文件 万能头文件#include<bits/stdc++.h> 其它头文件 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<typedef T> #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.时空复杂度分析 时间复杂度基础 主定理 期望时间复杂度 最坏时间复杂度 势能分析 常数分析 栈空间