5.4 各大 OJ 介紹

練習題的平台很多,不同 OJ 有不同特色。知道它們的差異,才能選擇適合自己的練習路線。

國際知名 OJ

Codeforces

網址codeforces.com

特色

  • 世界上使用人數最多的 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

特色

適合:有基礎、想系統學演算法的人(Level 1+)

難度參考:大多是 APCS 中等到進階


台灣 OJ

NCOJ (台大線上評測系統)

網址oj.ntucpc.org

特色

  • 台大程式解題社營運
  • 收錄 APCS Camp、IOI Camp、YTP 少年圖靈計劃的題目
  • 適合參考考古題、理解台灣本地比賽風格

適合:準備 APCS、想看國內比賽題目的人


TIOJ (北市高中線上評測系統)

網址tioj.ck.tp.edu.tw

特色

  • 建中資訊能力競賽的官方 OJ,歷史悠久
  • 收錄全國高中資訊能力競賽、許多全國賽考古題
  • 常見於國高中競賽

適合:參加學校或全國競賽、找本地出題風格的人


AA 競程的練習路線

  1. Level 0 語法班

    • AA 內部 OJ 練基礎語法(第 1-4 單元)
    • 開始嘗試 AtCoder Beginner Contest A-B 題(熟悉題目格式)
  2. Level 0 競程入門班

    • 升級到 AtCoder Beginner Contest 的 C 題
    • 並行練習 CSES 題庫 的基礎部分
    • 開始試試 Codeforces Div. 2 的 A-B 題
  3. Level 1 起

    • 主要用 Codeforces 練進階算法
    • CSES 作為補充