anyiak
立身须正,为人当明
安逸的网络日志
OI学习路线

ver. 1.0.1

假设你已经熟练掌握C++语言和OI有关的部分。

贪心和DP并没有被加入其中,原因是我觉得贪心和动态规划是一种思想,需要长期练习,不能被简单地归入某个学习阶段。

Part 1 算法基础

  1. 排序
  2. 栈、队列、链表
  3. 二分查找和二分答案
  4. 前缀和和差分
  5. dfs和bfs (难点,被卡住很长时间学不会很正常)
  6. 高精度(难点,选学)

Part 2 普及组算法/数据结构

  1. 时间复杂度的估算
  2. 并查集
  3. 离散化
  4. 快速幂
  5. gcd和lcm
  6. 素数筛
  7. 字符串Hash

Part 3 图论入门

图论基础。图论在整个OI中非常重要。

  1. 图的存储(邻接矩阵、邻接表、vector存图、链式前向星)
  2. 最短路(Dijkstra,Floyd,Ford,次短路)
  3. 最小生成树(kruskal)
  4. SPFA(负权图,判负环)
  5. 拓扑排序
  6. 二分图最大匹配

Part 4 提高组常用算法

包括一些提高组常考的数学/树上问题/图论算法。

  1. exgcd
  2. 排列组合
  3. 倍增求LCA(树上差分,树上最短路)
  4. 树链剖分
  5. Tarjan缩点
  6. 差分约束系统

Part 5 数据结构进阶

  1. 单调队列
  2. 单调栈
  3. ST表
  4. 树状数组、差分树状数组
  5. 线段树(难点,需要大量练习)

Part 6 字符串专项

  1. KMP
  2. Trie字典树
  3. AC 自动机
  4. 拓展KMP
  5. manacher

发表评论

textsms
account_circle
email

安逸的网络日志

OI学习路线
ver. 1.0.1 假设你已经熟练掌握C++语言和OI有关的部分。 贪心和DP并没有被加入其中,原因是我觉得贪心和动态规划是一种思想,需要长期练习,不能被简单地归入某个学习阶段。 Par…
扫描二维码继续阅读
2020-12-24