5.4 各大 OJ 介紹
練習題的平台很多,不同 OJ 有不同特色。知道它們的差異,才能選擇適合自己的練習路線。
¶國際知名 OJ
¶Codeforces
特色:
- 世界上使用人數最多的 OJ
- 每週舉辦 1-3 場國際比賽,參賽人數常超過 3 萬人
- 題目新穎、難度適中
- 有評分系統(rating),你的分數代表實力
適合:已經懂語法、想挑戰算法的人
難度參考:
- A 題(Div. 2)— APCS 中等
- B-C 題 — 需要基本算法知識(如排序、簡易搜尋)
- D+ 題 — 進階算法(動態規劃、圖論等)
¶AtCoder
網址:atcoder.jp
特色:
- 日本最大的 OJ,題目質量很高
- 每週舉辦 AtCoder Beginner Contest(ABC),特別適合初學者
- 題目分類清楚,難度遞進明確
- 有配套網站 Kenkoooo Atcoder Problems 方便找題
適合:初學者和想系統練習的人
難度參考:
- A-B 題 — 基本語法(適合第 1-3 單元)
- C 題 — 基本算法和陣列操作(第 5-6 單元)
- D+ 題 — 進階算法
¶CSES Problem Set
網址:cses.fi
特色:
- 編程競賽題庫,共 400+ 題,涵蓋經典算法
- 有配套電子書 Competitive Programmer's Handbook(免費)
- 題目難度適中到進階
適合:有基礎、想系統學演算法的人(Level 1+)
難度參考:大多是 APCS 中等到進階
¶台灣 OJ
¶NCOJ (台大線上評測系統)
特色:
- 台大程式解題社營運
- 收錄 APCS Camp、IOI Camp、YTP 少年圖靈計劃的題目
- 適合參考考古題、理解台灣本地比賽風格
適合:準備 APCS、想看國內比賽題目的人
¶TIOJ (北市高中線上評測系統)
特色:
- 建中資訊能力競賽的官方 OJ,歷史悠久
- 收錄全國高中資訊能力競賽、許多全國賽考古題
- 常見於國高中競賽
適合:參加學校或全國競賽、找本地出題風格的人
¶AA 競程的練習路線
Level 0 語法班:
- 用 AA 內部 OJ 練基礎語法(第 1-4 單元)
- 開始嘗試 AtCoder Beginner Contest A-B 題(熟悉題目格式)
Level 0 競程入門班:
- 升級到 AtCoder Beginner Contest 的 C 題
- 並行練習 CSES 題庫 的基礎部分
- 開始試試 Codeforces Div. 2 的 A-B 題
Level 1 起:
- 主要用 Codeforces 練進階算法
- CSES 作為補充