ACM信息学竞赛算法总结

  • 基础知识
    位运算
    递推与递归
    前缀与差分
    二分
    排序
    倍增
    贪心
    尺取法

  • 数据结构
    栈与队列 : 单调栈 单调队列 双端队列
    Hash: 字符串Hash 与Hash表
    字符串处理: KMP算法,-- Rabin-Karp 算法 — 最小表示法
    Tire(字典树)
    AC自动机
    二叉堆
    并查集
    树状数组
    线段树
    分块
    拓扑排序
    点分治
    离线分治算法
    二叉查找树与二叉平衡树
    可持久化数据结构

  • 搜索
    DFS
    BFS
    剪枝
    迭代加深
    双向搜索
    双向BFS
    A*
    IDA*

  • 动态规划
    背包九讲
    线性DP:LIS LCS
    区间DP
    树形DP
    状态压缩DP
    倍增优化DP
    数据结构优化DP
    单调队列优化DP
    计数类DP
    位数统计DP
    环形与后效性处理
    斜率优化
    四边形不等式

  • 数论
    质数: 质数筛选法
    质因数的分解: 阶乘分解
    约数: 欧几里得扩展式
    同余: 欧拉函数 欧拉函数推论 线性同余方程 费马小定理 中国剩余定理
    矩阵乘法
    快速幂运算与快速矩阵幂运算
    高斯消元与线性空间
    组合计数
    容斥原理与Molius函数
    概率与数学期望
    0/1分数规划
    博弈论: SG函数 与 Nim游戏 & 阶梯Nim

  • 图论
    最短路: dijkstra算法与floyd算法
    最小生成树:prim算法与kruskal算法
    树的直径
    最近公共祖先(LCA) : Tanjan算法 & 树上倍增法
    基环数
    负环
    差分约束
    Tarjan算法与无向图连接
    Tarjan算法与有向图连接
    二分图匹配 :匈牙利算法
    二分图的覆盖与独立集
    网络流:最大流 最小割

你可能感兴趣的:(算法)