(有下划线的表示还不了解)

动态规划

基础

  • 线性dp、区间dp,主要就是状态方程的设计和状态的转移

  • 背包dp,及其扩展 《背包九讲》是很好的学习资料

  • 用dp递推概率、期望(dp求期望一般分为两种。一种是dp状态保存的是概率,则期望=概率*花费。另一种是dp状态直接保存期望,这样一般都是逆推的。)

  • 树形dp(有些会套个背包dp,有些需要多次树形dp)

  • 状态压缩dp

  • 数位dp

  • RMQ、二维RMQ

进阶

  • dp优化

    使用数据结构优化,如线段树、树状数组、单调队列、单调栈、维护前缀和 …

    斜率优化(具有单调性可直接用单调队列或者二分,不具单调性要用平衡二叉树动态维护凸壳)

    四边形不等式优化

  • 插头dp

数据结构

基础

  • 队列、栈

  • 树、图的存储、遍历 邻接表和邻接矩阵

  • 单调队列、单调栈

  • 线段树、树状数组

  • 并查集、带权并查集

  • 堆、优先队列

  • 平衡二叉树

    Treap

    Spaly必须会

    [红黑树]

    [AVL树]

  • Hash散列表

进阶

  • 分块数组(分块的思想很强大)
  • 二维线段树(就是线段树套线段树,其实还有个[矩形树])、二维树状数组(就是树状数组套树状数组)
  • 树链剖分
  • 树套树,如线段树套平衡二叉树、树状数组套平衡二叉树 …
  • Link-Cut-Tree(解决一类动态树的问题,可以说是树的剖分+Splay)
  • 可持久化数据结构,如主席树、可持久化线段树、可持久化字典树、可持久化并查集、可持久化Treap …

搜索

基础

  • 深搜
  • 广搜
  • 记忆化搜索(也可以放到dp分类里)
  • 使用优先队列的广搜
  • 模拟退火、爬山算法

进阶

  • 搜索剪枝
  • 双向广搜
  • A、IDA
  • 舞蹈链

图论

基础

  • 最短路(Dijkstra、Spfa、Floyd)

  • 最小生成树(Prim、Kruskal)

  • 拓扑排序

  • 二分图最大匹配(匈牙利算法)

    二分图的最小顶点覆盖

    DAG图的最小路径覆盖

    二分图的最大独立集

  • 二分图最优匹配(KM算法)

  • 二分图多重匹配

  • 网络流

    最大流(Dinic、Sap)

    最小费用最大流

    带上下界的最大流

  • 有向图强连通分量的Tarjan算法

  • 最近公共祖先 Tarjan算法实现与RMQ实现各有千秋

  • 差分约束系统

  • 欧拉回路

  • 构造哈密顿回路

  • 最大团

  • 无向图全局最小割(StoerWagner)

进阶

  • 次小生成树

  • 最优比率生成树

  • [度限制生成树]

  • [第k小生成树]

  • 次短路、第k短路

  • 网络流 胡伯涛的《最小割模型在信息学竞赛中的应用》是很好的学习资料

    最大权闭合图

    最大密度子图

    二分图最小点权覆盖集

    二分图最大点权独立集

    区间k覆盖的模型

    平面图网络流

  • 无向图的割点和桥、边双联通分量、点双联通分量

  • 2-SAT

  • 最小树形图

  • 一般图匹配

  • 生成树计数、最小生成树计数

数学

基础

数论

  • 欧几里得算法、扩展欧几里得算法

    乘法逆元

    中国剩余定理

    欧拉函数

    欧拉定理

    Miller_Rabin大素数判定

    Pollard_rho大整数拆分

  • 线性代数

    矩阵乘法&快速幂

    高斯消元

  • 组合数学

    容斥原理

    鸽巢原理

    [母函数]

    [稳定婚姻问题]

  • 概率统计

  • 群论

    置换群

    BurnSide引理

    Polya定理

进阶

  • 莫比乌斯反演
  • BSGS
  • FFT
  • ……
  • 数学的进阶内容太多了

字符串

基础

  • KMP、扩展KMP
  • 字典树
  • 最长回文子串的Manacher算法
  • 字符串最小/最大表示法
  • 许多字符串问题可以用dp甚至贪心求解

进阶

  • AC自动机、Trie图
  • 回文树
  • 后缀数组、后缀自动机、后缀树
  • 序列自动机

计算几何

基础

  • 向量的点积、叉积
  • 极角排序
  • Graham扫描法
  • 二维最近点对
  • 最小覆盖圆
  • 圆面积并
  • ……
  • 计算几何的题目各种各样

进阶

  • 半平面交
  • 旋转卡壳
  • 三维凸包
  • ……
  • 计算几何的题目各种各样

博弈

一些经典的博弈、SG函数、必胜必败态搜索

STL

vector、set/mutiset、map、queue、stack、deque、string、rope

排序

虽然都用sort但是堆排序的原理还是要知道的

分治

普通的分治

CDQ分治

整体二分

树分治

二分、三分

2-points

01分数规划

构造

树的同构(树的hash)

莫队算法、[树上莫队]

找规律、打表


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

AC自动机 Previous
刷题日程(๑•̀ㅂ•́)و✧ Next