跳转至

# 学习资源

本页面主要列举了一些与算法竞赛有关的在线评测网站、题目合集、书籍、工具等资源．

## 在线评测平台

在线评测平台（英语：Online Judging System，简称：OJ），一般用于刷题训练，参与和组织比赛，以及用户之间的交流分享．

### 国内

- 51Nod：有许多值得尝试的数学题和思维题．
- Comet OJ：始于 2018 年，旨在为广大算法爱好者提供一个竞技、练习、交流的平台，经常举办原创性的高质量比赛，有丰富的题库．
- HDU Online Judge 始于 2005 年，杭州电子科技大学在线评测系统，有多校训练的题目．
- HydroOJ：始于 2021 年，为开源项目 Hydro 的官方站．用户可以创建自己的 域，域中可以使用题库、比赛、讨论等主站可以使用的功能．
- Judge Duck Online 基于 松松松 开发的开源项目 JudgeDuck，可以将评测程序的运行时间精确到微秒．（题目较少）
- LibreOJ：始于 2017 年．基于开源项目 Lyrio，Libre 取自由之意．题目所有测试数据以及提交的代码均对所有用户开放．目前由 Menci 维护．
- CDOJ：电子科技大学在线评测系统，始于 2012 年．
- 洛谷：始于 2013 年，社区群体庞大，各类 OI 的真题和习题较全．提供有偿教育服务．
- 牛客网：始于 2014 年，提供技术类求职备考、社群交流、企业招聘等服务．
- OpenJudge：始于 2005 年，由 POJ 团队开发的小组评测平台．
- POJ：北京大学在线评测系统，始于 2003 年，国内历史最悠久的 OJ 之一．内有很多英文题，既有基础题，也有值得一试的好题．可以在 百练 题库提交 POJ 的题目．
- PTA（拼题 A）：始于 2016 年，浙江大学衍生的杭州百腾教育科技有限公司产品．
- QOJ：收集了很多国内外 OI 和 ICPC 竞赛题目，具有训练价值．
- Universal Online Judge：始于 2014 年，Universal 取通用之意，项目开源；VFK 的 OJ：多原创比赛题和 CCF/THU 题，难度较高．
- Vijos：始于 2005 年．服务端 和 评测机 等项目开源．
- WZOI：始于 2017 年，由浙江省温州中学维护的 开源 评测系统．
- ZOJ：浙江大学在线评测系统，始于 2001 年．

### 国外

- AizuOJ：日本会津大学在线评测系统，始于 2004 年．包含日本若干高中和大学编程比赛的题目，自带编程/数据结构/算法的入门课程．
- AtCoder：日本 OJ，日文版里会有日本高校的比赛，英文内不会显示．题目有趣，质量较高．
- CodeChef：印度 OJ，周期举办比赛．系统基于 SPOJ 的 Sphere Engine．
- Codeforces：俄罗斯 OJ，始于 2010 年，创始人是 Mike Mirzayanov．有多种系列的比赛，并支持个人出题、申请组织比赛．题目质量较高．
- CSES(Code Submission Evaluation System)，按专题划分的题库，旨在 成为综合的高质量题库，主要由 Competitive Programmer’s Handbook 作者 Antti Laaksonen 开发，始于 2013 年．
- CS Academy
- DMOJ 加拿大开源的 OJ，语言支持广；题库是各大比赛的存档，也有定期自行举办的比赛．
- HackerRank 有很多比赛
- Kattis 题库主要包含类似 ICPC 比赛的题目；根据用户解题情况评定用户等级，推荐适合该用户水平的 trivial/easy/medium/hard 四类难度的题目，其中题目难度采用类 ELO 等级分 系统来评估．
- LeetCode 码农面试刷题网站，有中文分站：LeetCode China．
- Light OJ
- Open Trains 俄罗斯 Open Cup 比赛的训练平台，基于 ejudge 开源系统搭建，支持虚拟比赛；题库包含历年 Open Cup 赛题以及 Petrozavodsk 训练营的题目．
- SPOJ 始于 2003 年，其后台系统 Sphere Engine 于 2008 年商业化；支持题目点赞和标签功能．
- TopCoder 始于 2001 年，其 竞技编程社区 有很多比赛；目前主营业务是技术众包．
- TimusOJ 始于 2000 年，由 Ural Federal University 开发，拥有俄罗斯最大的在线评测题库，题目主要来自乌拉尔联邦大学校赛、乌拉尔锦标赛、ICPC 乌拉尔区域赛、以及 Petrozavodsk 训练营．
- Online Judge（前 UVaOJ）始于 1995 年，国际成名最早的 OJ，创始人是西班牙 University of Valladolid (UVa) 的 Miguel Ángel Revilla 教授；由于 Revilla 教授于 2018 年不幸离世，且 Valladolid 大学终止维护，UVaOJ 自 2019 年 7 月起更名为 Online Judge．现在该平台的维护者 正在 GitHub 上构建新的评测平台．
- Yandex 存档了近几年的全俄罗斯信息学奥赛．

## 教程资料

- OI Wiki
- Codeforces 上网友整理的一份教程合集
- 英文版 E-Maxx 算法教程
- 演算法筆記：台湾师范大学总结的教程
- 如何为 ACM-ICPC 做准备？- geeksforgeeks
- Topcoder 整理的教程
- 校招面试指南
- 由 hzwer 收集整理自互联网的课件
- Trinkle23897 的课件
- huzecong 的课件
- Open Data Structure：内含众多数据结构讲稿
- IOI Syllabus (2020)

## 书籍

本列表内注明了书籍作者，译者未列其中．因无重名书籍且易于寻找，故不标明 ISBN．

- 刘汝佳系列
  - 《算法竞赛入门经典》（紫）
    - 第一版 配套资源仓库（镜像）
    - 第二版 配套资源仓库
    - 第二版 习题选解
  - 《算法竞赛入门经典 - 训练指南》（白/蓝）- 陈锋 合著
  - 《算法艺术与信息学竞赛》（蓝/黑）
- 《算法竞赛进阶指南》- 李煜东
  - 配套资源仓库
- 《啊哈算法》- 纪磊
  - 面向初学者或有初步兴趣的人群，有幽默配图．
- CCF 中学生计算机程序设计系列
  - 《CCF 中学生计算机程序设计 - 入门篇》- 陈颖，邱桂香，朱全民
    - 建议配合勘误使用．
  - 《CCF 中学生计算机程序设计 - 基础篇》- 江涛，宋新波，朱全民
  - 《CCF 中学生计算机程序设计 - 提高篇》- 徐先友，朱全民
  - 《CCF 中学生计算机程序设计 - 专业篇》（未出）
- 深入浅出系列
  - 《深入浅出程序设计竞赛 - 基础篇》- 洛谷网校教研组
- 一本通系列
  - 《信息学奥赛一本通》- 董永建
  - 《信息学奥赛一本通 - 提高篇》- 黄新军，董永建
    - 建议选择性阅读．
  - 《信息学奥赛一本通 - 高手训练》- 黄新军，董永建
- 其他由国内著名 OI 教练写的教材
  - 《信息学奥赛课课通》- 林厚从
  - 《聪明人的游戏：信息学探秘 - 提高篇》- 江涛，陈茂贤
  - 《计算概论：C++ 编程与信息学竞赛入门》- 金靖
  - 《算法竞赛宝典》- 张新华
- ACM 国际大学生程序设计竞赛系列
  - 《ACM 国际大学生程序设计竞赛系列 知识与入门》- 俞勇
  - 《ACM 国际大学生程序设计竞赛系列 算法与实现》- 俞勇
  - 《ACM 国际大学生程序设计竞赛系列 题目与解读》- 俞勇
- 《算法竞赛入门到进阶》- 罗勇军，郭卫斌
- 《算法导论》第三版 - Thomas H.Cormen/Charles E.Leiserson/Ronald L.Rivest/Clifford Stein
  黑书，大学经典教材．英文版原名Introduction to Algorithms
  - 答案解析 (English)
- 《具体数学》第二版 - Ronald L. Graham/Donald E. Knuth/Oren Patashnik
  英文版原名Concrete Mathematics
- 《组合数学》第五版 - Richard A.Brualdi
  英文版原名Introductory Combinatorics
- 《挑战程序设计竞赛》全套 - 秋叶拓哉，岩田阳一，北川宜稔 通俗易懂．
- 《算法概论》- Sanjoy Dasgupta/Christos Papadimitriou/Umesh Vazirani
  - 提纲挚领，但内容较少．
- Legend-K 的数据结构与算法的笔记
- acm-cheat-sheet
- Competitive Programmer’s Handbook- Antti Laaksonen
  - 作者花了三年个人时间完成．面向算法竞赛，覆盖面广，详略得当．
- 《挑战编程：程序设计竞赛训练手册》- Steven S. Skiena/Miguel A. Revilla
  - 由西班牙 University of Valladolid 的两位教授编写．
  - 阅读 经过翻译的在线电子版图书
  - 购买 纸质版图书
- 《C++，挑战编程——程序设计竞赛进阶训练指南》- 邱秋
  - 作者博客的介绍页
- 《数据结构（C++ 语言版 第 3 版）》- 邓俊辉
  - 建议随配套课程、配套课件和习题解析一起使用．
- 《计算几何：算法与应用》- 伯格（Berg,M.D.）著，邓俊辉 译
  英文版原名Computational Geometry: Algorithms and Applications
- 《Handbook of Data Structures and Applications, 2nd Edition》
  - 由许多著名教授如 Sartaj Sahni、Hanan Samet、Weiss 等合著，内容较多，建议有一定基础的数据结构爱好者阅读．
- 算法详解 系列
  - 面向有语言基础的初学者的教材，建议同配套课程一起使用
  - 《Algorithms Illuminated, Part 1: The Basics》- Tim Roughgarden
  - 《算法详解，卷 1：算法基础》- 徐波 译
  - 《Algorithms Illuminated, Part 2: Graph Algorithms and Data Structures》- Tim Roughgarden
  - 《算法详解，卷 2：图算法和数据结构》- 徐波 译
  - 《Algorithms Illuminated, Part 3: Greedy Algorithms and Dynamic Programming》- Tim Roughgarden
  - 《Algorithms Illuminated, Part 4: Algorithms for NP-Hard Problems》- Tim Roughgarden

## 课程

- CMU 15-295 (2025)
- LSU: CSC 2700 (2024)
- NUS: CS 3233 (2021)
- Reykjavik: T-414-ÁFLV (2016)
- Stanford: CS 97SI (2015)
- Stonybrook: CSE 392 (2012)
- UBC: CPSC 490 (2021)
- UCF: COP 4516 (2025)
- THU: 数据结构
- THU: 计算几何
- StanfordOnline: Algorithms: Design and Analysis

## 工具

- 《100 个 gdb 小技巧》
- Algorithm Visualizer
- cppreference：一个全面的 C 和 C++ 语言及其标准库的在线参考资料
- Compiler Explorer：在线查看编译后代码块对应的汇编语句，支持选择不同的编译器
- C++ Insights：以编译器的视角去查看你的 C++ 源码
- Inverse Symbolic Calculator：实数反查表达式，适用于反推常数
- L A T E X L A T E X 手写符号识别
- L A T E X L A T E X 数学公式参考
- Mathpix：截图转 L A T E X L A T E X
- OEIS：整数数列搜索引擎
- Python Tutor: 代码执行过程可视化
- Quick C++ Benchmark：在线比较两个及以上函数的运行速度
- Try It Online：在线运行 600+ 种语言的代码，支持 IO 交互，超时 60s，可以分享代码
- 图论画板 与 GraphViz
- uDebug：提供一些 OJ 题目的调试辅助
- USF 与 VisuAlgo：算法可视化
- Wandbox: 在线代码运行，支持 30+ 种语言，可以分享代码，支持不同编译器版本
- Wolfram Alpha：可以计算包括数学、科学技术、社会文化……等多个主题的问题

## 题集和资源

- POJ 训练计划
- USACO
- 洛谷题单
- -Morass- 贴在 Codeforces 上的一份题单
- Codeforces 社区高质量算法文章合集 之一 之二
- 北京大学 ICPC 暑期课课件例题
- 北京大学 ICPC 暑期课课件
- GitHub.com:OI-wiki/libs
- 多校联合训练 关键词：`Multi-University Training Contest`
- Vjudge
- Project Euler
- Junior Training Sheet：对新手友好的训练计划
- USACO Guide：针对 USACO 的各个级别分类的训练资源

> 本页面最近更新：2026/1/7 08:56:54，更新历史
> 发现错误？想一起完善？ 在 GitHub 上编辑此页！
> 本页面贡献者：Ir1d, Xeonacid, Enter-tainer, NachtgeistW, StudyingFather, ChungZH, countercurrent-time, H-J-Granger, HeRaNO, Konano, Suyun514, abc1763613206, Planet6174, CCXXXI, JulieSigtuna, ksyx, Marcythm, mgt, Plaaant6, SukkaW, ZsgsDesign, AngelKitty, CB-X2-Jun, cjsoft, cmpute, diauweb, Early0v0, EndlessCheng, ezoixx130, fouzhe, frank-xjh, GekkaSaori, HeliumOI, Henry-ZHR, i-yyi, LovelyBuggies, luoguojie, LUTLJS, Makkiy, Massimo, minghu6, P-Y-Y, PotassiumWings, SamZhangQingChuan, sshwy, tallnutliu, Tiger3018, weiyong1024, ylxmf2005, zzjzxq33, 4fuu, cbw2007, Dup4, Emp7iness, Friendseeker, GavinZhengOI, Gesrua, GitPinkRabbit, GldHkkowo, greyqz, kxccc, LovelyAA, lushl9301, lychees, Macesuted, NeverBehave, opsiff, partychicken, Peanut-Tang, QAQAutoMaton, Rapiz1, skippre, Steaunk, Suyun514, TianyiQ, Tiphereth-A, Voileexperiments, wangchong, wangyisong1996, wyc-ruiker, yujqiao
> 本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供，附加条款亦可能应用