常用/常考算法总结

转自tangjz的博客...

基础算法

模拟

搜索

  1. 广度优先搜索(BFS)
  2. 优化:双向BFS
  3. 深度优先搜索(DFS)
  4. 优化:折半DFS
  5. 迭代加深搜索(IDS)
  6. 启发式搜索(Astar)
  7. 优化:IDAstar
  8. 优化:剪枝、位运算

排序

  1. 冒泡排序/选择排序
  2. 基数排序/桶排序
  3. 计数排序
  4. 插入排序/希尔排序
  5. 快速排序
  6. 归并排序/求逆序对数
  7. 堆排序

贪心

分治

  1. 二分/三分/n分
  2. cdq分治

倍增/ST

离散化

二分答案

快速幂/十进制快速幂

基础数学

数列求和

泰勒展开

矩阵

  1. 矩阵乘法
  2. 高斯消元
  3. 判断线性相关

Catalan数

组合数学

  1. 加法原理/乘法原理
  2. 组合数递推/杨辉三角
  3. 二项式定理
  4. 抽屉原理/鸽笼原理
  5. Lucas定理
  6. 容斥原理

数论

质数判定/Miller-Rabin检验

分解质因数/求约数

欧几里得算法/辗转相除法

扩展欧几里得算法/乘法逆元/二元一次同余方程

线性预处理1-n乘法逆元

素数筛

  1. 埃拉托斯特尼筛
  2. 欧拉筛

欧拉函数

莫比乌斯函数

费马小定理

威尔逊定理

中国剩余定理/孙子定理

二次剩余/Cipolla's Algorithm

原根

离散对数/Baby-Step Giant-Step

群论

置换

Burnside引理

Polya定理

动态规划

背包dp

  1. 01背包
  2. 完全背包
  3. 多重背包
  4. 混合背包
  5. 二维背包
  6. 分组背包
  7. 树形背包
  8. 泛型背包

按维度

  1. 线性dp
  2. 区间dp
  3. 高维dp

按类型

  1. 划分dp
  2. 最长上升子序列(LIS)
  3. 最长公共子序列(LCS)
  4. 有向无环图(DAG)上dp
  5. (基于联通性的)状态压缩dp

优化

  1. 滚动数组
  2. 前缀和
  3. 四边形不等式
  4. 斜率优化
  5. 位运算
  6. 数据结构
  7. cdq分治

技巧

  1. 记忆化搜索
  2. 顺推/逆推
  3. 最小表示法

图论

连通性

  1. 图的遍历
  2. 拓扑排序
  3. 强联通分量
  4. 割点、桥、双联通分量/tarjan算法

  1. 最近公共祖先(LCA)/tarjan算法
  2. 树的中心/直径
  3. 树的重心
  4. 树的同构

最短路

  1. 多源最短路径(APSP)/floyd
  2. 最小环
  3. 传递闭包
  4. 单源最短路径(SSSP)/queue+bellman-ford/heap+dijkstra

生成树

  1. 最小生成树
  2. 最小比例生成树
  3. 最小瓶颈树

二分图

  1. 二分图验证
  2. 二分图染色
  3. 最大匹配/匈牙利算法
  4. 最优匹配/KM算法

网络流

  1. dinic算法
  2. isap算法
  3. 预流推进算法
  4. 技巧:拆点
  5. 优化:合点/合边
  6. 优化:线段树

数据结构

高精度

  1. 高精度对低精度加减乘除取余
  2. 高精度对高精度加减乘除取余
  3. 优化:快速傅里叶变换

链表

  1. 单双向链表
  2. 块状链表
  3. 邻接表/边表

队列

  1. 循环队列
  2. 优先队列/最小二叉堆
  3. 左偏树
  4. Fibonacci堆

  1. 二叉查找树
  2. 堆(同上)
  3. 笛卡尔树
  4. 树状数组
  5. 线段树
  6. 拓展:动态线段树、四分树
  7. 重量平衡树
  8. 伸展树

并查集

哈希表(Hash)

自动机

字符串

  1. Trie树
  2. KMP
  3. Manacher
  4. AC自动机(Aho-Corasick Automaton)
  5. 后缀数组/后缀树/后缀自动机/后缀平衡树等

动态树

  1. 树链剖分/树块剖分
  2. Link-Cut Tree/Euler-Tour tree

计算几何

平面几何/立体几何/解析几何/参数方程

判断点与多边形关系(转角法/扫描线法)

多边形面积交/面积并

极角排序

凸包/旋转卡壳

半平面交

三角剖分/Voronoi图

博弈论

SG组合游戏/SG函数

Bash游戏/Wythoff游戏/NIM游戏

对抗搜索

概率论

完全概率

Bayes定理

Markov过程

Chebyshev定理

杂项

分块

随机调整/模拟退火/随机爬山

单纯形法

 

posted @ 2015-02-23 10:11  lowsfish  阅读(348)  评论(0编辑  收藏  举报