友链

扶醉桌前 提交于 2019-11-26 11:06:19

同届

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

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<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.时空复杂度分析
    时间复杂度基础
      主定理
      期望时间复杂度
      最坏时间复杂度
    势能分析
    常数分析
    栈空间
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!