學習資源
本頁面主要列舉了一些與算法競賽有關的在線評測網站、題目合集、書籍、工具等資源。
在線評測平台
在線評測平台(英語:Online Judging System,簡稱:OJ),一般用於刷題訓練,參與和組織比賽,以及用户之間的交流分享。
國內
- 51Nod:有許多值得嘗試的數學題和思維題。
- Comet OJ:始於 2018 年,旨在為廣大算法愛好者提供一個競技、練習、交流的平台,經常舉辦原創性的高質量比賽,有豐富的題庫。
- FZUOJ 始於 2008 年,福州大學在線評測系統。
- HDU Online Judge 始於 2005 年,杭州電子科技大學在線評測系統,有多校訓練的題目。
- hihoCoder 始於 2012 年,面向企業招聘,有些題目來自於每週一題,涉及知識點的學習。(登錄後方可查看題面)
- HydroOJ:始於 2021 年,為開源項目 Hydro 的官方站。用户可以創建自己的 域,域中可以使用題庫、比賽、討論等主站可以使用的功能。
- 計蒜客 北京矩道優達網絡科技有限公司旗下的核心產品,提供按知識點和難度篩選的信息學題庫和 ICPC 題庫。
- Judge Duck Online 基於 鬆鬆松 開發的開源項目 JudgeDuck,可以將評測程序的運行時間精確到微秒。(題目較少)
- LibreOJ:始於 2017 年。基於開源項目 Lyrio,Libre 取自由之意。題目所有測試數據以及提交的代碼均對所有用户開放。目前由 Menci 維護。
- Lutece:電子科技大學在線評測系統,始於 2018 年,項目開源。
- 洛谷:始於 2013 年,社區羣體龐大,各類 OI 的真題和習題較全。提供有償教育服務。
- 牛客網:始於 2014 年,提供技術類求職備考、社羣交流、企業招聘等服務。
- NOJ:南京郵電大學在線評測系統,始於 2008 年,項目開源。自身擁有題目兩千餘道,同時支持對多個國內外 OJ 的提交,可以直接在 NOJ 提交別的 OJ 的題。
- NTUOJ:台灣大學在線評測系統,始於 2007 年,基於開源項目 Judge Girl。
- OpenJudge:始於 2005 年,由 POJ 團隊開發的小組評測平台。
- POJ:北京大學在線評測系統,始於 2003 年,國內歷史最悠久的 OJ 之一。內有很多英文題,既有基礎題,也有值得一試的好題。
- PTA(拼題 A):始於 2016 年,浙江大學衍生的杭州百騰教育科技有限公司產品。
- 清澄:始於 2005 年,由 胡偉棟 開發。自 2019 年 9 月 1 日起不再對外提供服務。
- 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),按專題劃分的題庫,旨在 成為綜合的高質量題庫,目前只有 200 題,主要由 Competitive Programmer’s Handbook 作者 Antti Laaksonen 開發,始於 2013。
- CS Academy
- DMOJ 加拿大開源的 OJ,語言支持廣;題庫是各大比賽的存檔,也有定期自行舉辦的比賽。
- HackerRank 有很多比賽
- ICPC Live Archive 存檔了 1990 年至今的 ICPC 區域賽和總決賽題目;但部分比賽的評測數據僅為樣例數據,且對 Special Judge 的支持不完善。
- ICPC Problem Archive 基於 Kattis 系統;存檔了 2012 年至今的 ICPC 全球總決賽題目,並且會在總決賽開賽時同步發放題目(但不會有同步賽)。
- Kattis 題庫主要包含類似 ICPC 比賽的題目;根據用户解題情況評定用户等級,推薦適合該用户水平的 trivial/easy/medium/hard 四類難度的題目,其中題目難度採用類 ELO 等級分 系統來評估。
- LeetCode 碼農面試刷題網站,有中文分站:LeetCode China。
- Light OJ 一個快掛了的 OJ,
www域名無法訪問,請使用 根域名 訪問 - opentrains 俄羅斯 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 - 《具體數學》第二版 - 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
課程
- Baylor: CSI 3144 (2006)
- CMU 15-295 (2021)
- Georgia Tech: CS 4540 (2020)
- Georgia Tech: CS 6550 (2021)
- LSU: CSC 2700 (2021)
- NUS: CS 3233 (2021)
- Reykjavik: T-414-ÁFLV (2016)
- SPSU: Coursera (2019)
- Stanford: CS 97SI (2015)
- Stonybrook: CSE 392 (2012)
- TAMU: CSCE 430 (2021)
- UBC: CPSC 490 (2021)
- UCF: COP 4516 (2021)
- VT: CS 2984/4984 (2020)
- THU: 數據結構
- THU: 計算幾何
- StanfordOnline: Algorithms: Design and Analysis
工具
- 《100 個 gdb 小技巧》
- Algorithm Visualizer
- cppreference:一個全面的 C 和 C++ 語言及其標準庫的在線參考資料
- Compiler Explorer:在線查看編譯後代碼塊對應的彙編語句,支持選擇不同的編譯器
- C++ Insights:以編譯器的視角去查看你的 C++ 源碼
- Inverse Symbolic Calculator:實數反查表達式,適用於反推常數
- \(\rm\LaTeX\) 手寫符號識別
- \(\rm\LaTeX\) 數學公式參考
- Mathpix:截圖轉 \(\rm\LaTeX{}\)
- OEIS:整數數列搜索引擎
- Python Tutor: 代碼執行過程可視化
- Quick C++ Benchmark:在線比較兩個及以上函數的運行速度
- Try It Online:在線運行 600+ 種語言的代碼,支持 IO 交互,超時 60s,可以分享代碼
- 圖論畫板 與 GraphViz
- Ubuntu Pastebin:可用於分享代碼
- 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 的各個級別分類的訓練資源
本页面最近更新:,更新历史
发现错误?想一起完善? 在 GitHub 上编辑此页!
本页面贡献者:Suyun514, ChungZH, Enter-tainer, StudyingFather, Konano, JulieSigtuna, GldHkkowo, SukkaW, Rapiz1, Henry-ZHR, H-J-Granger, countercurrent-time, fouzhe, Ir1d, abc1763613206, EndlessCheng, Plaaant6, LUTLJS, ZsgsDesign
本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用