Try   HackMD

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

-2. 筆者的話

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

-1. C++ 線上教材

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

code風景區 (code scenic): 給新手的C++教學 (上冊) by 2016 台灣 IOI 國手
C++ 從 Zero 開始 - 板橋高中資訊社
從零開始的演算法競賽入門教學 by 2020 台灣 IOI 國手
建中 2021 暑假資讀投影片[1] by 謝一:可以讓稍微懂程式的人快速上手 C++ 跟資訊競賽。

語法練習題單

TCFSH CIRC Judge - 預設題庫

TCFSH CIRC Judge - 基礎題庫

高中生程式解題系統 - 教學題 tag

0. 教材

線上教材

APCS

台灣高中競賽

英文教材

實體書

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

  • 高中生程式解題系統 - 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 當手速狗有賺有賠,申購前應詳閱公開說明書。

      Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →

    • 🇬🇧🇯🇵AtCoder:考驗你的思維高度!

    • 🇬🇧Topcoder: 你想打這個可能要先花一天學習怎麼用他ㄉ網站或是 java applet 吧笑死,好像是最老ㄉ競程排位網站但是系統很老舊很不好用

2. 建議的學習方法

Appendix

TOI 代表隊遴選作業

想比資奧的話可以研究一下怎麼進選訓營 1! / 2! / 國手
TOI 官網
中華民國參加國際資訊奧林匹亞競賽代表隊遴選作業要點

演算法比賽網路資源整理 (沒錯這是遞迴(?))

各種討論社群(?)

AC Discord Server

  • 英文社群
  • 線上比賽賽後來這裡通常都能找到人討論
  • 有個很好的 Codeforces chat bot 叫做 TLE,可以查很多統計資料(;plot),自動推薦你練習題目(;gitgud),跟別人單挑隨機一題誰比較快解出來(;duel)等等。用法請看這篇:Presenting TLE: the best Codeforces bot for Discord - Codeforces

野生的臺中一中資訊競賽培訓

本文作者的自嗨用臉書社團(?)

統計資料網站

Rating History

clist.by:範例 pr3pony - Coder - CLIST