Tài liệu học tập
Trang này chủ yếu liệt kê một số tài nguyên liên quan đến thi thuật toán: hệ thống chấm online, bộ đề, sách, công cụ, v.v.
Nền tảng chấm online
Nền tảng chấm online (tiếng Anh: Online Judging System, viết tắt: OJ) thường dùng để luyện bài, tham gia/ tổ chức thi, và giao lưu chia sẻ giữa người dùng.
Trong nước
- 51Nod:có nhiều bài toán toán học và tư duy đáng thử.
- Comet OJ:khởi đầu năm 2018, nhằm cung cấp một nền tảng thi đấu, luyện tập, giao lưu cho cộng đồng đam mê thuật toán; thường tổ chức các cuộc thi原创 chất lượng cao, kho đề phong phú.
- HDU Online Judge khởi đầu năm 2005, hệ thống chấm online của Học viện Công nghệ Điện tử Hàng Châu, có đề luyện đa trường.
- HydroOJ:khởi đầu năm 2021, là trang chính thức của dự án mã nguồn mở Hydro. Người dùng có thể tạo 域, trong đó có thể dùng ngân hàng đề, contest, thảo luận như ở trang chính.
- Judge Duck Online dựa trên dự án mã nguồn mở JudgeDuck do 松松松 phát triển, có thể đo thời gian chạy chính xác đến micro giây. (đề ít)
- LibreOJ:khởi đầu năm 2017. Dựa trên dự án mã nguồn mở Lyrio, Libre mang nghĩa “tự do”. Toàn bộ dữ liệu test và code nộp đều mở cho mọi người. Hiện do Menci维护.
- CDOJ:hệ thống chấm online của ĐH Khoa học & Công nghệ Điện tử, khởi đầu năm 2012.
- 洛谷:khởi đầu năm 2013, cộng đồng lớn, đề thật và bài tập OI khá đầy đủ. Có dịch vụ giáo dục trả phí.
- 牛客网:khởi đầu năm 2014, cung cấp ôn luyện tuyển dụng kỹ thuật, cộng đồng, tuyển dụng doanh nghiệp.
- OpenJudge:khởi đầu năm 2005, nền tảng chấm nhóm do đội POJ phát triển.
- POJ:hệ thống chấm online của ĐH Bắc Kinh, khởi đầu năm 2003, một trong những OJ lâu đời nhất trong nước. Có nhiều đề tiếng Anh, cả cơ bản lẫn hay. Có thể nộp đề POJ tại 百练题库.
- PTA(拼题 A):khởi đầu năm 2016, sản phẩm của Hangzhou Baiteng (từ ĐH Chiết Giang).
- QOJ:thu thập nhiều đề OI/ICPC trong và ngoài nước, có giá trị luyện tập.
- Universal Online Judge:khởi đầu năm 2014, Universal mang nghĩa “phổ quát”, dự án mã nguồn mở; OJ của VFK: nhiều contest原创 và đề CCF/THU, độ khó cao.
- Vijos:khởi đầu năm 2005. Server và judge đều mã nguồn mở.
- WZOI:khởi đầu năm 2017, hệ thống chấm mã nguồn mở do THPT Ôn Châu (Chiết Giang)维护.
- ZOJ:hệ thống chấm online của ĐH Chiết Giang, khởi đầu năm 2001.
Nước ngoài
- AizuOJ:hệ thống chấm online của ĐH Aizu (Nhật), khởi đầu năm 2004. Có nhiều đề thi của THPT/ĐH Nhật, kèm khóa nhập môn lập trình/cấu trúc dữ liệu/thuật toán.
- AtCoder:OJ Nhật, phiên bản tiếng Nhật có các contest của ĐH Nhật mà bản tiếng Anh không hiển thị. Đề thú vị, chất lượng cao.
- CodeChef:OJ Ấn Độ, tổ chức contest định kỳ. Hệ thống dựa trên Sphere Engine của SPOJ.
- Codeforces:OJ Nga, khởi đầu năm 2010, sáng lập bởi Mike Mirzayanov. Có nhiều series contest, hỗ trợ ra đề cá nhân/đăng ký tổ chức contest. Đề chất lượng cao.
- CSES(Code Submission Evaluation System),题库按专题分类,旨在成为综合高质量题库,主要由 Competitive Programmer’s Handbook 作者 Antti Laaksonen 开发,始于 2013 年.
- CS Academy
- DMOJ OJ mã nguồn mở của Canada, hỗ trợ nhiều ngôn ngữ; đề là archive các contest lớn và contest tự tổ chức định kỳ.
- HackerRank có nhiều contest
- Kattis kho đề chủ yếu kiểu ICPC; đánh giá mức người dùng theo kết quả và gợi ý đề trivial/easy/medium/hard, độ khó dựa trên hệ ELO 等级分.
- LeetCode trang luyện phỏng vấn, có bản tiếng Trung: LeetCode China.
- Light OJ
- Open Trains nền tảng luyện Open Cup (Nga), dựa trên hệ thống mã nguồn mở ejudge, hỗ trợ contest ảo; đề gồm Open Cup các năm và đề trại Petrozavodsk.
- SPOJ khởi đầu năm 2003, backend Sphere Engine thương mại hóa năm 2008; hỗ trợ like và tag đề.
- TopCoder khởi đầu năm 2001, cộng đồng lập trình thi đấu có nhiều contest; hiện chủ yếu làm crowdsourcing kỹ thuật.
- TimusOJ khởi đầu năm 2000, do Ural Federal University phát triển, kho đề lớn nhất Nga; đề từ các contest nội bộ, Ural Championship, ICPC Ural, và trại Petrozavodsk.
- Online Judge(trước đây UVaOJ)khởi đầu năm 1995, OJ quốc tế nổi tiếng sớm nhất, sáng lập bởi GS Miguel Ángel Revilla (ĐH Valladolid, Tây Ban Nha); do GS Revilla mất năm 2018 và ĐH Valladolid ngừng维护, UVaOJ đổi tên thành Online Judge từ 7/2019. Hiện nền tảng này đang xây dựng hệ thống mới trên GitHub.
- Yandex lưu trữ đề OI Nga các năm gần đây.
Tài liệu hướng dẫn
- OI Wiki
- Tổng hợp tutorial do cộng đồng Codeforces整理
- Bản tiếng Anh của E-Maxx
- 演算法筆記:tài liệu do ĐH Sư phạm Đài Loan tổng hợp
- 如何为 ACM-ICPC 做准备?- geeksforgeeks
- Tutorial do Topcoder整理
- Hướng dẫn phỏng vấn tuyển dụng
- Slide do hzwer收集整理
- Slide của Trinkle23897
- Slide của huzecong
- Open Data Structure:chứa nhiều bài giảng cấu trúc dữ liệu
- IOI Syllabus (2020)
Sách
Danh sách ghi tác giả, không ghi dịch giả. Vì dễ tìm và không trùng tên nên không ghi ISBN.
- Loạt sách của 刘汝佳
- 《算法竞赛入门经典》(bìa tím)
- 《算法竞赛入门经典 - 训练指南》(trắng/xanh)- đồng tác giả 陈锋
- 《算法艺术与信息学竞赛》(xanh/đen)
- 《算法竞赛进阶指南》- 李煜东
- 《啊哈算法》- 纪磊
- Dành cho người mới hoặc mới quan tâm, có minh họa hài hước.
- Loạt CCF 中学生计算机程序设计
- 《CCF 中学生计算机程序设计 - 入门篇》- 陈颖,邱桂香,朱全民
- 《CCF 中学生计算机程序设计 - 基础篇》- 江涛,宋新波,朱全民
- 《CCF 中学生计算机程序设计 - 提高篇》- 徐先友,朱全民
- 《CCF 中学生计算机程序设计 - 专业篇》(chưa xuất bản)
- Loạt “深入浅出”
- 《深入浅出程序设计竞赛 - 基础篇》- nhóm nghiên cứu giáo trình Luogu
- Loạt “一本通”
- 《信息学奥赛一本通》- 董永建
- 《信息学奥赛一本通 - 提高篇》- 黄新军,董永建
- 《信息学奥赛一本通 - 高手训练》- 黄新军,董永建
- Các教材 khác do HLV OI nổi tiếng trong nước viết
- 《信息学奥赛课课通》- 林厚从
- 《聪明人的游戏:信息学探秘 - 提高篇》- 江涛,陈茂贤
- 《计算概论:C++ 编程与信息学竞赛入门》- 金靖
- 《算法竞赛宝典》- 张新华
- Loạt ACM quốc tế
- 《ACM 国际大学生程序设计竞赛系列 知识与入门》- 俞勇
- 《ACM 国际大学生程序设计竞赛系列 算法与实现》- 俞勇
- 《ACM 国际大学生程序设计竞赛系列 题目与解读》- 俞勇
- 《算法竞赛入门到进阶》- 罗勇军,郭卫斌
- 《算法导论》第三版 - Thomas H.Cormen/Charles E.Leiserson/Ronald L.Rivest/Clifford Stein
Sách đen, giáo trình kinh điển đại học. Tên gốc Introduction to Algorithms - 《具体数学》第二版 - Ronald L. Graham/Donald E. Knuth/Oren Patashnik
Tên gốc Concrete Mathematics - 《组合数学》第五版 - Richard A.Brualdi
Tên gốc Introductory Combinatorics - 《挑战程序设计竞赛》全套 - 秋叶拓哉,岩田阳一,北川宜稔 Dễ hiểu.
- 《算法概论》- Sanjoy Dasgupta/Christos Papadimitriou/Umesh Vazirani
- Khái quát trọng tâm nhưng nội dung ít.
- Ghi chép CTDL&TT của Legend-K
- acm-cheat-sheet
- Competitive Programmer’s Handbook- Antti Laaksonen
- Tác giả dành 3 năm cá nhân hoàn thành. Hướng tới CP, bao quát rộng, cân đối mức chi tiết.
- 《挑战编程:程序设计竞赛训练手册》- Steven S. Skiena/Miguel A. Revilla
- Do hai giáo sư ĐH Valladolid (Tây Ban Nha) biên soạn.
- Bản ebook đã được dịch
- Mua bản giấy
- 《C++,挑战编程——程序设计竞赛进阶训练指南》- 邱秋
- 《数据结构(C++ 语言版 第 3 版)》- 邓俊辉
- Nên dùng kèm khóa học, slide và lời giải bài tập.
- 《计算几何:算法与应用》- 伯格(Berg,M.D.)著,邓俊辉 译
Tên gốc Computational Geometry: Algorithms and Applications - 《Handbook of Data Structures and Applications, 2nd Edition》
- Nhiều giáo sư nổi tiếng đồng tác giả (Sartaj Sahni, Hanan Samet, Weiss...), nội dung nhiều, phù hợp người có nền tảng CTDL.
- 系列《算法详解》
- Dành cho người đã có nền tảng ngôn ngữ, khuyến nghị học kèm khóa.
- 《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
Khóa học
- 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
Công cụ
- 《100 个 gdb 小技巧》
- Algorithm Visualizer
- cppreference:tài liệu tham khảo toàn diện về C/C++ và thư viện chuẩn
- Compiler Explorer:xem mã assembly sau biên dịch, chọn nhiều compiler
- C++ Insights:xem mã C++ dưới góc nhìn compiler
- Inverse Symbolic Calculator:tra ngược biểu thức thực, phù hợp suy ngược hằng số
- \(\rm\LaTeX\) nhận dạng ký hiệu viết tay
- \(\rm\LaTeX\) tham khảo ký hiệu toán
- Mathpix:chụp màn hình → \(\rm\LaTeX{}\)
- OEIS:tra cứu dãy số nguyên
- Python Tutor: trực quan hóa quá trình chạy
- Quick C++ Benchmark:so sánh tốc độ chạy hàm online
- Try It Online:chạy 600+ ngôn ngữ online, hỗ trợ IO tương tác, timeout 60s, có thể chia sẻ
- Bảng vẽ đồ thị và GraphViz
- uDebug:hỗ trợ debug một số đề OJ
- USF và VisuAlgo:trực quan hóa thuật toán
- Wandbox: chạy code online, 30+ ngôn ngữ, chia sẻ, hỗ trợ nhiều phiên bản compiler
- Wolfram Alpha:giải toán, khoa học, xã hội, v.v.
Bộ đề và tài nguyên
- Kế hoạch luyện POJ
- USACO
- Danh sách luyện Luogu
- -Morass- danh sách đề trên Codeforces
- Tổng hợp bài viết thuật toán chất lượng trên Codeforces phần 1 phần 2
- Bài tập minh họa trong bài giảng ICPC mùa hè của PKU
- Bài giảng ICPC mùa hè của PKU
- GitHub.com:OI-wiki/libs
- Luyện đa trường từ khóa:
Multi-University Training Contest - Vjudge
- Project Euler
- Junior Training Sheet:kế hoạch luyện thân thiện với người mới
- USACO Guide:tài nguyên luyện theo từng cấp độ USACO
Last updated on this page:, Update history
Found an error? Want to help improve? Edit this page on GitHub!
Contributors to this page:Suyun514, ChungZH, Enter-tainer, StudyingFather, Konano, JulieSigtuna, GldHkkowo, SukkaW, Rapiz1, Henry-ZHR, H-J-Granger, countercurrent-time, fouzhe, Ir1d, abc1763613206, EndlessCheng, Plaaant6, LUTLJS, ZsgsDesign, CB-X2-Jun, tallnutliu
All content on this page is provided under the terms of the CC BY-SA 4.0 and SATA license, additional terms may apply