第一讲 基础算法
快速排序
归并排序
二分
高精度
前缀和与差分
双指针算法
\(AcWing\) \(799\). 最长连续不重复子序列
位运算
\(AcWing\) \(801\). 二进制中\(1\)的个数
离散化
区间合并
第二讲 数据结构
单链表
双链表
栈
队列
单调栈
单调队列
KMP
\(AcWing\) \(831\). \(KMP\)字符串
Trie
\(AcWing\) \(835\). \(Trie\)字符串统计
并查集
堆
哈希表
第三讲 搜索与图论
DFS
\(AcWing\) \(843\). \(n\)-皇后问题
BFS
树与图的深度优先遍历
树与图的广度优先遍历
拓扑排序
Dijkstra
\(AcWing\) \(849\). \(Dijkstra\)求最短路\(I\)
\(AcWing\) \(850\). \(Dijkstra\)求最短路\(II\)
bellman-ford
spfa
\(AcWing\) \(851\). \(spfa\)求最短路
\(AcWing\) \(852\). \(spfa\)判断负环
Floyd
\(AcWing\) \(854\). \(Floyd\)求最短路
Prim
\(AcWing\) \(858\). \(Prim\)算法求最小生成树
Kruskal
\(AcWing\) \(859\). \(Kruskal\)算法求最小生成树
染色法判定二分图
匈牙利算法[月佬算法]
第四讲 数学知识
质数
约数
欧拉函数
快速幂
扩展欧几里得算法
中国剩余定理
高斯消元
\(AcWing\) \(883\). 高斯消元解线性方程组
\(AcWing\) \(884\). 高斯消元解异或线性方程组
求组合数
容斥原理
博弈论
\(AcWing\) \(891\). \(Nim\) 游戏
\(AcWing\) \(892\). 台阶-\(Nim\)游戏
\(AcWing\) \(893\). 集合-\(Nim\)游戏
\(AcWing\) \(894\). 拆分-\(Nim\)游戏
第五讲 动态规划
背包问题
线性DP
\(AcWing\) \(896\). 最长上升子序列 II
区间DP
计数类DP
数位统计DP
状态压缩DP
\(AcWing\) \(91\). 最短\(Hamilton\)路径
树形DP
\(AcWing\) \(1049\). 大盗阿福 [没有上司的舞会 引入题]
记忆化搜索
第六讲 贪心
区间问题
\(AcWing\) \(905\). 区间选点
思路:尽可能让选择的点跨更多的区间。
\(AcWing\) \(908\). 最大不相交区间数量
思路:最大不相交区间数量与区间选点是一样的代码,因为如果某些线段有公共的点,那么它们只能取一个,换句话说,就是有距离无交叉的区间个数。