跳转至

算法竞赛学习指南

@LYS编辑此页面


小白篇


算法竞赛应该是入门门槛最低的计算机竞赛了——会 C 语言基础即可。

这个阶段出现的题目侧重 C 语言语法基础,并没有太多的难题,换句话说,只要你熟练掌握 C 语言,这个阶段的题目都不在话下。

新手入门的第一阶段,你只需要:

这一阶段值得推荐的资料:

如果你能够主动学习并且专心刷题,通常来说这一阶段不会超过三周。


初学者-前篇


在你完成了小白篇该做的事情之后,你就可以开始入门算法竞赛了。 为了便于学习,我将这个阶段划分为两段。


这一阶段可以视作小白到入门算法的衔接阶段,在这一阶段会涉及到一些简单的思维和找规律的题目。

你需要在这一阶段:

值得推荐的资料:


初学者-后篇


这一阶段相较上一阶段难度提升幅度巨大,很多人也是在这一阶段开始放弃(

你需要在这一阶段:

  • 学习算法竞赛常用的算法和数据结构,并对其进行专项练习。
  • 学习期间开始尝试参加一些简单的算法竞赛,每次赛后补题目。

算法学习


对于基础算法,你要学习包括但不限于:

  • 前缀和、差分
  • 二分查找、二分答案
  • 双指针、滑动窗口
  • 高精度

必要的数据结构,包括但不限于:

  • 链表
  • 栈、队列
  • 哈希表
  • 并查集

然后是稍微难一点的算法和数据结构:

  • BFS、DFS
  • 二叉树、树状数组
  • 最短路、最小生成树、二分图
  • 背包DP、线性DP

值得推荐的资料:


参加竞赛


在学习算法期间,你需要同步参加各大平台的算法竞赛,适应比赛节奏并坚持赛后补题进行提高。

算法竞赛平台:

  • 力扣周赛:难度较低,时候新手和找工作选手参加
  • 牛客竞赛:难度较高,且题目质量参差不齐
  • AtCoder:推荐,Beginner 场适合新手参加,Regular 场题目质量较高
  • Codeforces:推荐,新手适合参加 div4 和 div3,但更建议打 div2,cf 更侧重于思维题,题目质量上乘

⚠️ 这一阶段的竞赛的难度将会呈现 💥 增长,与此同时你也将接触到我们日后参加的绝大部分的算法竞赛:

  • XCPC
  • 蓝桥杯竞赛
  • 团体程序设计天梯赛

提高者篇


敬请期待


进阶者篇


敬请期待


评论