算法竞赛学习指南
小白篇
算法竞赛应该是入门门槛最低的计算机竞赛了——会 C 语言基础即可。
这个阶段出现的题目侧重 C 语言语法基础,并没有太多的难题,换句话说,只要你熟练掌握 C 语言,这个阶段的题目都不在话下。
新手入门的第一阶段,你只需要:
- 学习 C/C++ 语言语法基础
这一阶段值得推荐的资料:
初学者-前篇
在你完成了小白篇该做的事情之后,你就可以开始入门算法竞赛了。 为了便于学习,我将这个阶段划分为两段。
这一阶段可以视作小白到入门算法的衔接阶段,在这一阶段会涉及到一些简单的思维和找规律的题目。
你需要在这一阶段:
- 学习 C++ 的基础语法和常用的 STL 库函数
值得推荐的资料:
- 常用的 STL 笔记
初学者-后篇
这一阶段相较上一阶段难度提升幅度巨大,很多人也是在这一阶段开始放弃(
你需要在这一阶段:
- 学习算法竞赛常用的算法和数据结构,并对其进行专项练习。
- 学习期间开始尝试参加一些简单的算法竞赛,每次赛后补题目。
算法学习
对于基础算法,你要学习包括但不限于:
- 前缀和、差分
- 二分查找、二分答案
- 双指针、滑动窗口
- 高精度
必要的数据结构,包括但不限于:
- 链表
- 栈、队列
- 堆
- 哈希表
- 并查集
然后是稍微难一点的算法和数据结构:
- BFS、DFS