关于老师

推荐徐经纬老师(好像 2025 年起不担任本课程了),支持免修不免考,事少,人好。

黄宇老师不支持免修不免考,且对有 OI 经验的学生敌意很大,会找麻烦。

前置知识

简单的 C++ 使用经验(C with STL)

课程内容

一些简单的经典算法,包括:

  • 复杂度分析
  • 贪心
  • 动态规划
  • 二分
  • 排序
  • 图论(最短路、最小生成树)
  • 搜索
  • 分治
  • 堆、单调栈等简单数据结构
  • 简单计算复杂性(NP、NPC、NP-Hard)

远低于 OI 中普及组难度。

作业、考试与得分

作业主要为书面作业,来自于教材课后习题。需要格外注意作业中的格式和规范性,考试时如果过程不规范则基本不得分。

会有一些简单的 OJ 题目,不超过普及组难度(Tarjan 缩点、分层图、可持久化并查集等)。

其他

对于没有 OI 基础的同学,这门课的内容十分重要。类似 OJ 的题目将会大量出现在各类保研机试/找工作机试中,建议以此课程为跳板,在 LeetCode 上练习相应专题。