外部资源¶
精选竞赛学习外部资源,涵盖知识百科、练习平台、代码参考和推荐书籍。
知识学习¶
OI-Wiki¶
- 网址: https://oi-wiki.org
- 简介: 中文算法竞赛知识百科,内容覆盖全面,从基础语法到高级数据结构、图论、数论、计算几何等,均有系统性的讲解。
- 推荐使用场景:
- 学习某个算法/数据结构时查阅原理和代码实现
- 赛前快速复习知识点
- 需要了解某个主题的完整知识体系时
- 特点: 内容严谨、持续更新、社区维护、配有代码示例
代码随想录¶
- 网址: https://programmercarl.com
- 简介: 系统性的算法学习教程,以 LeetCode 题目为主线,从数组、链表到动态规划、图论,循序渐进地讲解算法思维。
- 推荐使用场景:
- 零基础入门算法的第一站
- 学习某个专题(如二叉树、动态规划)的系统性教程
- 做 LeetCode 题目前先看对应章节的讲解
- 特点: 讲解通俗易懂、配有动画图解、题解详尽
labuladong 的算法小抄¶
- 网址: https://labuladong.online/algo/
- 简介: 以"框架思维"为核心,将常见算法题型归纳为有限的思维框架,帮助快速识别题目类型并套用解法。
- 推荐使用场景:
- 掌握基础算法后,提升解题思路和技巧
- 准备面试或竞赛时快速复习核心框架
- 理解动态规划、回溯、BFS/DFS 等算法的通用模式
- 特点: 注重思维框架、善于总结套路、附带详细题解
USACO Guide¶
- 网址: https://usaco.guide
- 简介: 美国计算机奥林匹克竞赛(USACO)官方推荐学习路线,按照铜、银、金、白金四个等级划分,内容涵盖数据结构、算法、数学等。
- 推荐使用场景:
- 想要按照循序渐进的等级体系学习竞赛算法
- 阅读英文资料(提升竞赛英语能力)
- 获取 USACO 历年真题及题解
- 特点: 体系完整、分级明确、英文资料、配有练习题
cppreference¶
- 网址: https://zh.cppreference.com
- 简介: C++ 标准库的权威参考文档(中文版),涵盖所有标准库容器、算法、函数的接口说明、复杂度保证和使用示例。
- 推荐使用场景:
- 查询某个 STL 函数的精确行为和参数含义
- 确认容器操作的时间复杂度保证
- 了解不同 C++ 标准(C++11/14/17/20)的特性差异
- 特点: 权威准确、覆盖完整、附带可运行示例、中英文对照
代码参考¶
TheAlgorithms/C++¶
- GitHub: https://github.com/TheAlgorithms/C-Plus-Plus
- 简介: 开源算法实现集合,用 C++ 实现了大量经典算法和数据结构。
- 推荐使用场景:
- 学习某个算法时参考不同人的实现方式
- 了解算法的多种变体
- 作为入门学习的代码阅读材料
- 特点: 代码量大、覆盖广、社区活跃
KACTL¶
- GitHub: https://github.com/kth-competitive-programming/kactl
- 简介: KTH(瑞典皇家理工学院)ACM 队伍的竞赛模板库,被众多世界级竞赛队伍使用。
- 推荐使用场景:
- 参加 ICPC 等线下赛时的打印模板参考
- 获取经过实战检验的高效算法实现
- 学习竞赛级代码的写法和常数优化技巧
- 特点: 代码精练、经过大量比赛验证、包含注释说明
doocs/leetcode¶
- GitHub: https://github.com/doocs/leetcode
- 简介: LeetCode 题解集合,提供多种语言的解法,题目分类清晰。
- 推荐使用场景:
- 做 LeetCode 题时参考不同思路
- 查找某道题的多种解法
- 学习 C++ 的简洁写法
- 特点: 覆盖 LeetCode 全部题目、多语言支持、持续更新
练习平台¶
Codeforces¶
- 网址: https://codeforces.com
- 简介: 全球最活跃的算法竞赛平台之一,每周举办 1-2 场在线比赛。
- 推荐使用场景:
- 参加定期比赛保持手感
- 按难度筛选题目练习(Problemset 按 Rating 筛选)
- 使用 Gym 参加历史比赛的模拟赛
- 使用建议:
- 注册账号后先做 Div.3 或 Div.4 的 A-C 题
- 使用 Problemset 按 Rating 排序,从 800 开始逐渐提高
- 比赛后务必补题(Virtual participation)
Codeforces Gym¶
- 网址: https://codeforces.com/gym
- 简介: Codeforces 的练习赛区域,收录了大量 ICPC 区域赛、国家集训队比赛等高质量真题。
- 推荐使用场景:
- 组队模拟 ICPC 赛制(3人5小时)
- 练习历年 ICPC/CCPC 区域赛真题
- 体验正式比赛的压力和节奏
AtCoder Contests¶
- 网址: https://atcoder.jp
- 简介: 日本最大的算法竞赛平台,比赛质量高,题目风格偏向思维和数学。
- 推荐使用场景:
- ABC(AtCoder Beginner Contest)适合入门和进阶
- ARC(AtCoder Regular Contest)适合提升
- AGC(AtCoder Grand Contest)适合冲刺高难度
- 使用建议:
- 每周参加 ABC,先做 A-E 题
- ABC 的 F/G 题可作为挑战题
- 比赛后到 Submission 页面查看高分选手的代码
洛谷¶
- 网址: https://www.luogu.com.cn
- 简介: 国内最大的 OJ 平台之一,收录了大量 NOIP/CSP 真题和模板题,题解丰富。
- 推荐使用场景:
- 学习某个算法后找对应的模板题练习
- 刷 NOIP/CSP 历年真题
- 使用洛谷团队题单进行专题训练
- 使用建议:
- 搜索"模板"可找到各算法的模板题
- 使用难度标签筛选适合自己的题目
- 题解区有大量优质讲解,可参考学习
AcWing¶
- 网址: https://www.acwing.com
- 简介: 国内算法学习平台,提供系统性的算法课程(基础课、提高课等)和配套题库,题目按知识点组织,讲解与练习结合紧密。
- 推荐使用场景:
- 跟随系统课程按专题学习算法(配套例题 + 习题)
- 刷算法基础课的经典模板题巩固代码实现
- 参加平台定期举办的周赛保持手感
- 使用建议:
- 基础课的例题覆盖了竞赛最常用的算法模板,适合入门阶段跟练
- 每学完一个专题,用配套习题检验掌握程度
推荐书籍¶
《算法竞赛入门经典》¶
- 作者: 刘汝佳
- 简介: 国内算法竞赛入门经典教材,内容从基础编程技巧到中级算法,循序渐进。
- 适合人群: 刚开始接触竞赛的零基础学生
- 主要内容: C/C++ 基础、暴力求解、高效算法设计、数据结构基础、图论基础、动态规划入门
- 推荐用法: 作为入门阶段的主教材,配合手册的对应章节使用
《挑战程序设计竞赛》¶
- 作者: [日] 秋叶拓哉、岩田阳一、北川宜稔
- 简介: 日本算法竞赛经典教材,内容覆盖全面,讲解精炼,配有大量例题和练习题。
- 适合人群: 有一定基础后希望系统提升的选手
- 主要内容: 初级(贪心、DP、搜索)、中级(数据结构、图论、数学)、高级(高级数据结构、字符串、计算几何)
- 推荐用法: 在完成入门学习后作为进阶教材,重点阅读中级部分
资源使用建议¶
| 学习阶段 | 推荐资源 |
|---|---|
| 零基础入门 | 代码随想录 + 《算法竞赛入门经典》 + 洛谷入门题 |
| 基础巩固 | OI-Wiki + labuladong 算法小抄 + LeetCode 暑假题单 |
| 专题突破 | OI-Wiki + 《挑战程序设计竞赛》 + Codeforces 按 Rating 练习 |
| 赛前冲刺 | KACTL 模板 + Codeforces Gym + AtCoder 比赛 |
| 日常训练 | Codeforces 每周比赛 + AtCoder ABC + 洛谷团队题单 |