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