ver. 1.0.1
假设你已经熟练掌握C++语言和OI有关的部分。
贪心和DP并没有被加入其中,原因是我觉得贪心和动态规划是一种思想,需要长期练习,不能被简单地归入某个学习阶段。
Part 1 算法基础
- 排序
- 栈、队列、链表
- 二分查找和二分答案
- 前缀和和差分
- dfs和bfs (难点,被卡住很长时间学不会很正常)
- 高精度(难点,选学)
Part 2 普及组算法/数据结构
- 时间复杂度的估算
- 堆
- 并查集
- 离散化
- 快速幂
- gcd和lcm
- 素数筛
- 字符串Hash
Part 3 图论入门
图论基础。图论在整个OI中非常重要。
- 图的存储(邻接矩阵、邻接表、vector存图、链式前向星)
- 最短路(Dijkstra,Floyd,Ford,次短路)
- 最小生成树(kruskal)
- SPFA(负权图,判负环)
- 拓扑排序
- 二分图最大匹配
Part 4 提高组常用算法
包括一些提高组常考的数学/树上问题/图论算法。
- exgcd
- 排列组合
- 倍增求LCA(树上差分,树上最短路)
- 树链剖分
- Tarjan缩点
- 差分约束系统
Part 5 数据结构进阶
- 单调队列
- 单调栈
- ST表
- 树状数组、差分树状数组
- 线段树(难点,需要大量练习)
Part 6 字符串专项
- KMP
- Trie字典树
- AC 自动机
- 拓展KMP
- manacher
发表评论