---
# System prepended metadata

title: 便宜的演算法比賽網路資源整理

---

# 便宜的演算法比賽網路資源整理
### -2. 筆者的話
這裡都是我 ([pr3pony](mailto:pr3pony@gmail.com)) 在網路上找到的演算法比賽學習資源，大部分都是 free 的（自由或免費），有些可能要花一點錢（書本），有些可能很貴(?)。內容從程式語言的語法、演算法入門一直到 IOI 等國際比賽的優秀選手所需要的先備知識都有。我有盡量照難度排序，可以按自己的程度跳著閱讀，但是如果你全部瀏覽過一遍我會很開心。以下文中的「我」都是指 pr3pony，並且敘述帶有個人主觀意見，當參考就好。

## -1. C++ 線上教材
因為執行效率與方便性(STL)，通常程式競賽選手會使用 C++ 這個語言，而基本上競賽程式只會用到 C++ 一部分的語法，學到函式跟指標就夠用了（甚至指標大多數時候可以用陣列 + index 取代），class 之類物件導向的東西只打競賽的話其實可以先不用學太細（但要用別人模板時要能看懂）。

[code風景區 (code scenic): 給新手的C++教學 (上冊)](https://codingsimplifylife.blogspot.com/2016/04/c.html) by 2016 台灣 IOI 國手
[C++ 從 Zero 開始 - 板橋高中資訊社](https://sites.google.com/site/pcshic/cppzero)
[從零開始的演算法競賽入門教學](https://emanlaicepsa.github.io/) by 2020 台灣 IOI 國手
[建中 2021 暑假資讀投影片[1] by 謝一](https://slides.com/thanksone/deck)：可以讓稍微懂程式的人快速上手 C++ 跟資訊競賽。

### 語法練習題單
[TCFSH CIRC Judge - 預設題庫](https://judge.tcirc.tw/Problems?tabid=DEFAULT#tab00)

[TCFSH CIRC Judge - 基礎題庫](https://judge.tcirc.tw/Problems?tabid=BASIC#tab01)

[高中生程式解題系統 - 教學題 tag](https://zerojudge.tw/Problems?tag=%E6%95%99%E5%AD%B8%E9%A1%8C)


## 0. 教材
### 線上教材
#### APCS
- AP325 - 從 APCS 實作題檢測三級到五級
吳邦一教授撰寫的免費 APCS 中文教材，特色是所有的習題都有附測資。
    - [講義與習題測資](https://drive.google.com/drive/folders/10hZCMHH0YgsfguVZCHU7EYiG8qJE5f-m)
    - [臉書社團：APCS實作題檢測](https://www.facebook.com/groups/359446638362710)
    - [一中電腦資訊研究社 Online Judge 上的 AP325 題組](https://judge.tcirc.tw/Problems?tag=AP325)：這裡的題目跟吳邦一教授無關，只是一中學生們為了方便讓人練習而把 AP325 附的測資放上 OJ 而已

- PythAPCS123：Python 程式設計從 APCS 實作 1 級到 3 級
吳邦一教授錄製的線上課程。給沒有基礎的Python初學者，以考到APCS實作題三級分為短期目標來設計的課程。
    - [教學影片 YouTube 撥放清單](https://youtube.com/playlist?list=PLpmg1QLbgMuSIDOgOcwf0Fbbn2ZDR7s-X)
    - [講義所在位置](https://drive.google.com/drive/folders/1mnVdO2LHq7e4vesn6pt_R0-S6YWtz4Q4?usp=sharing
)
- [PythAPCS45](https://www.youtube.com/playlist?list=PLpmg1QLbgMuRQXHRkX9iDHyAVIW1D6OJF)：也是吳邦一教授錄製的免費的教學影片，內容為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

- 資訊之芽：一個資訊領域的推廣計畫，由台大跟清大同學當講師教高中生，投影片跟課程影片都有公開
    - [2020 上課內容](https://www.csie.ntu.edu.tw/~sprout/algo2020/)
    - [2021 上課內容](https://www.csie.ntu.edu.tw/~sprout/algo2021/)
    - [官網](https://sprout.tw/spt/)
    - [粉絲專頁](https://www.facebook.com/ntucsiesprout)


#### 英文教材
- 🇬🇧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

- 算法竞赛进阶指南
https://book.douban.com/subject/30136932/

- 🇬🇧Competitive Programming 4: The Lower Bound of Programming Contests in the 2020s
https://cpbook.net/details



## 1. 推薦的練習平台 (Online Judge)


- [高中生程式解題系統 - ZeroJudge](https://zerojudge.tw/)：高師大附中老師架設的網站，使用者寫一定比例的題目就能在上面出題，所以想要在上面出題變得越來越困難(?)。優點是題目多，缺點也是題目多，要刷的話挑有難度一點的題目吧！

- [TIOJ INFOR Online Judge](https://tioj.ck.tp.edu.tw/)：建中資訊社的 OJ (我沒搞錯的話?)，收集了台灣高中比賽的題目跟建中生或前國手(?)原創題，在 tag 或 contest 亂翻可以挖到寶(?)
    - [2019 IOICamp 的題目](https://tioj.ck.tp.edu.tw/problems/tag/IOIcamp)
    - [全國賽考古題](https://tioj.ck.tp.edu.tw/contests/46)
    - [~2018入營考考古題](https://tioj.ck.tp.edu.tw/contests/70)
    - [TOI模考古題](https://tioj.ck.tp.edu.tw/contests/71)


- [OJ的啦](https://ojdl.ck.tp.edu.tw/)：建中資毒 ><


- 🇬🇧[🇫🇮CSES Problem Set](https://cses.fi/problemset/)：刷過都說讚！
    - 2020 IOI 滿分第一名 [William Lin](https://stats.ioinformatics.org/people/6990) 的[刷題直播](https://youtu.be/dZ_6MS14Mg4)


- 🇬🇧[CS Academy](https://csacademy.com/)：刷過都說讚！

- 🇬🇧🇵🇱[POI = Polish Olympiad in Informatics](https://szkopul.edu.pl/task_archive/oi/)：現在在 SZKOpuł 這個 OJ 上。傳說拔到獅子的鬃毛，掉落的頭髮就能長回來，而刷完 POI，掉落的名次也能長回來喔 ><


- 🇬🇧[OI Checklist](https://oichecklist.pythonanywhere.com/)：因為這篇文    [Checklist for OI problems - Codeforces](https://codeforces.com/blog/entry/59422)而有人做的實用刷 OI 題目網站。

- 🇬🇧🇯🇵[AOJ (AIZU ONLINE JUDGE)](https://onlinejudge.u-aizu.ac.jp/)：会津大学的 OJ，Courses 裡面模板題不錯，看得到測資。
- 💪😎🤳[Virtual Judge](https://vjudge.net/)：不要點開，你會怕

- 有線上例賽的：基本上每週都有線上比賽可以打，沒有也可以 virtual contest，這類網站通常題目品質比較好，基本上都有題解 (tutorial/editorial) 可以看，且有 rating 機制，可以檢視自己的程度。但是高難度的原創好題一般會投到 IOI 或是各國 POI, USACO, JOI 之類的大比賽，所以只練這種網站的話可能會不小心走火入魔(?)
    - 🇬🇧🇷🇺[Codeforces ](    https://codeforces.com/)：刷 CF 當手速狗有賺有賠，申購前應詳閱公開說明書。
    ![](https://media.giphy.com/media/mCRJDo24UvJMA/giphy.gif)

    - 🇬🇧🇯🇵[AtCoder](https://atcoder.jp/)：考驗你的思維高度！
        - [AtCoder Problems](
    https://kenkoooo.com/atcoder/#/table/pr3pony)：非官方的刷題工具
        - [AtCoder Clans](
https://kato-hiro.github.io/AtCoderClans/)：非官方的資源整理
    - 🇬🇧[Topcoder](https://www.topcoder.com/community/competitive-programming/how-to-compete): 你想打這個可能要先花一天學習怎麼用他ㄉ網站或是 java applet 吧笑死，好像是最老ㄉ競程排位網站但是系統很老舊很不好用


## 2. 建議的學習方法

- 來自 2021 台灣資奧銀牌[張程凱](https://stats.ioinformatics.org/people/7615)的建議：[IOI 準備心得 - HackMD](https://hackmd.io/Cd5AugwvQlmhrH-97O1PVw)
- [我的未來, 自己寫: 17歲資奧金牌少年, 衝撞體制500天 | 大眾心理學 | 商品 | 誠品線上](https://www.eslite.com/product/1001128182640235)：2016 台灣資奧金牌[何達睿](https://stats.ioinformatics.org/people/6038)寫的書，書裡有一部分是他的學習方法跟備賽策略，有興趣可以買來看。

- [AA 競程](https://aacpschool.com/)的 [dreamoon 老師](https://codeforces.com/profile/dreamoon_love_AA)在 2015 年寫的 [Codeforces blog - If you ask me how to improve your algorithm competition skill, I will give you the link of this blog.](https://codeforces.com/blog/entry/16599)

- 來自本文作者 [pr3pony](https://clist.by/coder/pr3pony/) 的廢話
    1. 挑一份教材
    2. 把上面教的東西學起來
    3. 刷題目或 virtual contest
    4. 依據實際參加的比賽或模擬比賽，檢視自己的實力
    5. 跟夥伴們討論題目 / 看題解
    6. if 覺得有很多東西不會 goto 1.
    7. goto 3.
    8. live happily ever after


## Appendix

### TOI 代表隊遴選作業
想比資奧的話可以研究一下怎麼進選訓營 1! / 2! / 國手
[TOI 官網](https://toi.csie.ntnu.edu.tw/)
[中華民國參加國際資訊奧林匹亞競賽代表隊遴選作業要點](https://drive.google.com/file/d/1OI5FrYxn47aw6z3GXNOogXJPAydB89Id/view)



### 演算法比賽網路資源整理 (沒錯這是遞迴(?))
- [台灣資訊培訓相關資源彙整](https://github.com/goodjack/awesome-cs-training)：以台灣高中生為出發點的資訊培訓相關資源彙整

- [演算法筆記](https://web.ntnu.edu.tw/~algo/)：內容主要是站長寫的演算法教學文章
    - [Competitive Programming - 演算法筆記](https://web.ntnu.edu.tw/~algo/Activity.html#6)：這裡整理了非常非常多資源，應該是我見過最專業且齊全的列表，還有介紹台灣大學程式競賽的概況，大學生或是社會人士對競程有興趣的很推薦把這裡瀏覽過一遍。([這是這個頁面 2020 的 web archive 連結](https://web.archive.org/web/20200212110118/http://www.csie.ntnu.edu.tw/~u91029/CompetitiveProgramming.html)，因為演算法筆記有時會變動文章位置，所以留這個當備份連結)

- [OI Wiki](https://oi-wiki.org/)：中國選手的算法競賽 wiki 共筆，有不少寫得不錯的文章，也有很多很難的內容(?)


- 🇬🇧[Awesome Competitive Programming](https://github.com/lnishan/awesome-competitive-programming): A curated list of awesome Competitive Programming, Algorithm and Data Structure resources

- 🇬🇧[Algorithms for Competitive Programming](https://cp-algorithms.com/)：本來是從俄文的 http://e-maxx.ru/algo 翻譯成英文的 project，但現在好像競程會用到的演算法你寫了文章都能投稿上去（？）




###  各種討論社群(?)
#### [AC Discord Server](https://discord.com/invite/2CJ6qvY) 
- 英文社群
- 線上比賽賽後來這裡通常都能找到人討論
- 有個很好的 Codeforces chat bot 叫做 TLE，可以查很多統計資料(;plot)，自動推薦你練習題目(;gitgud)，跟別人單挑隨機一題誰比較快解出來(;duel)等等。用法請看這篇：[Presenting TLE: the best Codeforces bot for Discord - Codeforces](https://codeforces.com/blog/entry/68927)

#### [野生的臺中一中資訊競賽培訓](https://www.facebook.com/groups/496064644359955/)
本文作者的自嗨用臉書社團(?)

### 統計資料網站

#### [Rating History](https://rating-history.herokuapp.com/index.html?handle_topcoder=prprprpony&handle_codeforces=pr3pony&handle_atcoder=pr3pony&handle_aoj=pr3pony&handle_yukicoder=pr3pony&handle_librarychecker=pr3pony&select_handle=pr3pony)

#### clist.by：範例 [pr3pony - Coder - CLIST](https://clist.by/coder/pr3pony/)
