设立本专栏的初衷在于,我意识到我学习过的很多算法,一段时间不使用就会被我遗忘,于是决定把学习这些算法的过程记录下来,也同时分享给其他有需要的人。
本专栏默认读者会使用基本的C++语言且掌握基本的贪心、搜索、动态规划思想。
方括号里的编号表示笔记中用到的前置算法(并不意味着该算法必须用到)。分类仅作参考,不一定准确。需要说明的是,因为作者的主攻题型具有偏向性,所以各种类型的笔记数量很可能不平衡。
搜索和动态规划
- 算法学习笔记(26): 双向搜索
- 算法学习笔记(27): 最长上升子序列 【20】
- 算法学习笔记(58): 最长公共子序列
数据结构
- 算法学习笔记(1) : 并查集
- 算法学习笔记(2) : 树状数组
- 算法学习笔记(7):种类并查集
- 算法学习笔记(12): ST表
- 算法学习笔记(14): 线段树
- 算法学习笔记(15): 珂朵莉树
- 算法学习笔记(23): 分块
- 算法学习笔记(24): 莫队【23】
- 算法学习笔记(44): 01字典树【43】
- 算法学习笔记(45): 二叉搜索树
- 算法学习笔记(46): 替罪羊树【45】
- 算法学习笔记(47): 二叉堆
- 算法学习笔记(49): 线段树的拓展【14】
- 算法学习笔记(50): 可持久化线段树【19,49】
- 算法学习笔记(59): 树链剖分【14,21】
图论
- 算法学习笔记(3) : 存图
- 算法学习笔记(5):匈牙利算法 【3】
- 算法学习笔记(6):最短路问题 【3】
- 算法学习笔记(11): 差分约束 【6】
- 算法学习笔记(21): 最近公共祖先【3】
- 算法学习笔记(53): 拓扑排序【3】
- 算法学习笔记(57): 传递闭包【6】
网络流
- 算法学习笔记(28): 网络流【3】
- 算法学习笔记(29): 二者取一式问题【28】
- 算法学习笔记(30): 路径覆盖问题【28】
- 算法学习笔记(31): 最小费用最大流【6,28】
- 算法学习笔记(60): 上下界网络流【28,31】
数论
- 算法学习笔记(8):拓展欧几里得
- 算法学习笔记(9):逆元 【4, 8】
- 算法学习笔记(10): 中国剩余定理 【9】
- 算法学习笔记(17): 素数筛
- 算法学习笔记(18): 欧拉函数【17】
- 算法学习笔记(25): 卢卡斯定理【9】
- 算法学习笔记(33): 拓展欧拉定理【4,18】
- 算法学习笔记(34): 大步小步算法【4,8,33】
- 算法学习笔记(35): 狄利克雷卷积【18】
- 算法学习笔记(36): 莫比乌斯反演【35】
- 算法学习笔记(40): 原根【4,18】
- 算法学习笔记(41): 二次剩余【4】
- 算法学习笔记(48): 米勒-拉宾素性检验【41】
- 算法学习笔记(52): 杜教筛【36】
- 算法学习笔记(55): Pollard-Rho算法【48】
计算几何
- 算法学习笔记(63): 计算几何基础
- 算法学习笔记(64): 极角排序【63】
字符串
- 算法学习笔记(13): KMP算法
- 算法学习笔记(43): 字典树
多项式
- 算法学习笔记(16): 母函数
- 算法学习笔记(32): 快速傅里叶变换
- 算法学习笔记(42): 快速数论变换【9,32,40】
线性代数
- 算法学习笔记(37): 线性基
- 算法学习笔记(38): 高斯消元
其他
- 算法学习笔记(4):快速幂
- 算法学习笔记(19): 离散化
- 算法学习笔记(20): 二维偏序 【2,19】
- 算法学习笔记(22): 基数排序
- 算法学习笔记(39): 调度场算法
- 算法学习笔记(51): SG函数
- 算法学习笔记(54): Pólya定理【36】
- 算法学习笔记(56): 康托展开【2,45】
- 算法学习笔记(61): cdq分治【20,27】
- 算法学习笔记(62): 三分法