這裡都是我 (pr3pony) 在網路上找到的演算法比賽學習資源,大部分都是 free 的(自由或免費),有些可能要花一點錢(書本),有些可能很貴(?)。內容從程式語言的語法、演算法入門一直到 IOI 等國際比賽的優秀選手所需要的先備知識都有。我有盡量照難度排序,可以按自己的程度跳著閱讀,但是如果你全部瀏覽過一遍我會很開心。以下文中的「我」都是指 pr3pony,並且敘述帶有個人主觀意見,當參考就好。
因為執行效率與方便性(STL),通常程式競賽選手會使用 C++ 這個語言,而基本上競賽程式只會用到 C++ 一部分的語法,學到函式跟指標就夠用了(甚至指標大多數時候可以用陣列 + index 取代),class 之類物件導向的東西只打競賽的話其實可以先不用學太細(但要用別人模板時要能看懂)。
code風景區 (code scenic): 給新手的C++教學 (上冊) by 2016 台灣 IOI 國手
C++ 從 Zero 開始 - 板橋高中資訊社
從零開始的演算法競賽入門教學 by 2020 台灣 IOI 國手
建中 2021 暑假資讀投影片[1] by 謝一:可以讓稍微懂程式的人快速上手 C++ 跟資訊競賽。
AP325 - 從 APCS 實作題檢測三級到五級
吳邦一教授撰寫的免費 APCS 中文教材,特色是所有的習題都有附測資。
PythAPCS123:Python 程式設計從 APCS 實作 1 級到 3 級
吳邦一教授錄製的線上課程。給沒有基礎的Python初學者,以考到APCS實作題三級分為短期目標來設計的課程。
PythAPCS45:也是吳邦一教授錄製的免費的教學影片,內容為APCS實作四五級的考古題Python題解。
2018-2019板中校內資訊培訓講義:2019 板中資奧國手撰寫的講義。
https://sites.google.com/site/pcshic/zi-xun-pei-xun
2016建中校內培訓講義:2017 建中資奧國手撰寫的講義。
https://tioj.ck.tp.edu.tw/articles/5
資訊之芽:一個資訊領域的推廣計畫,由台大跟清大同學當講師教高中生,投影片跟課程影片都有公開
🇬🇧USACO Guide:美國資奧選手們做的好網站
https://usaco.guide/
🇬🇧Competitive Programmer's Handbook
英文教材,可以免費載 pdf
https://cses.fi/book/index.html
算法竞赛入门经典
簡體
https://www.books.com.tw/products/CN11124942
繁體版:打下好基礎:程式設計與演算法競賽入門經典
https://www.books.com.tw/products/0010650143
中一中電研社辦書櫃應該有若干本(?)
培養與鍛鍊程式設計的邏輯腦:世界級程式設計大賽的知識、心得與解題分享 [第二版]
https://www.books.com.tw/products/0010616945
🇬🇧Competitive Programming 4: The Lower Bound of Programming Contests in the 2020s
https://cpbook.net/details
高中生程式解題系統 - ZeroJudge:高師大附中老師架設的網站,使用者寫一定比例的題目就能在上面出題,所以想要在上面出題變得越來越困難(?)。優點是題目多,缺點也是題目多,要刷的話挑有難度一點的題目吧!
TIOJ INFOR Online Judge:建中資訊社的 OJ (我沒搞錯的話?),收集了台灣高中比賽的題目跟建中生或前國手(?)原創題,在 tag 或 contest 亂翻可以挖到寶(?)
OJ的啦:建中資毒 ><
🇬🇧🇫🇮CSES Problem Set:刷過都說讚!
🇬🇧CS Academy:刷過都說讚!
🇬🇧🇵🇱POI = Polish Olympiad in Informatics:現在在 SZKOpuł 這個 OJ 上。傳說拔到獅子的鬃毛,掉落的頭髮就能長回來,而刷完 POI,掉落的名次也能長回來喔 ><
🇬🇧OI Checklist:因為這篇文 Checklist for OI problems - Codeforces而有人做的實用刷 OI 題目網站。
🇬🇧🇯🇵AOJ (AIZU ONLINE JUDGE):会津大学的 OJ,Courses 裡面模板題不錯,看得到測資。
💪😎🤳Virtual Judge:不要點開,你會怕
有線上例賽的:基本上每週都有線上比賽可以打,沒有也可以 virtual contest,這類網站通常題目品質比較好,基本上都有題解 (tutorial/editorial) 可以看,且有 rating 機制,可以檢視自己的程度。但是高難度的原創好題一般會投到 IOI 或是各國 POI, USACO, JOI 之類的大比賽,所以只練這種網站的話可能會不小心走火入魔(?)
🇬🇧🇷🇺Codeforces :刷 CF 當手速狗有賺有賠,申購前應詳閱公開說明書。
🇬🇧🇯🇵AtCoder:考驗你的思維高度!
🇬🇧Topcoder: 你想打這個可能要先花一天學習怎麼用他ㄉ網站或是 java applet 吧笑死,好像是最老ㄉ競程排位網站但是系統很老舊很不好用
來自 2021 台灣資奧銀牌張程凱的建議:IOI 準備心得 - HackMD
我的未來, 自己寫: 17歲資奧金牌少年, 衝撞體制500天 | 大眾心理學 | 商品 | 誠品線上:2016 台灣資奧金牌何達睿寫的書,書裡有一部分是他的學習方法跟備賽策略,有興趣可以買來看。
AA 競程的 dreamoon 老師在 2015 年寫的 Codeforces blog - If you ask me how to improve your algorithm competition skill, I will give you the link of this blog.
來自本文作者 pr3pony 的廢話
想比資奧的話可以研究一下怎麼進選訓營 1! / 2! / 國手
TOI 官網
中華民國參加國際資訊奧林匹亞競賽代表隊遴選作業要點
台灣資訊培訓相關資源彙整:以台灣高中生為出發點的資訊培訓相關資源彙整
演算法筆記:內容主要是站長寫的演算法教學文章
OI Wiki:中國選手的算法競賽 wiki 共筆,有不少寫得不錯的文章,也有很多很難的內容(?)
🇬🇧Awesome Competitive Programming: A curated list of awesome Competitive Programming, Algorithm and Data Structure resources
🇬🇧Algorithms for Competitive Programming:本來是從俄文的 http://e-maxx.ru/algo 翻譯成英文的 project,但現在好像競程會用到的演算法你寫了文章都能投稿上去(?)
本文作者的自嗨用臉書社團(?)