快轉到主要內容

Online Judge 是什麼

目錄

概要
#

Online Judge,中文名為「線上解題系統」,常被大眾簡稱為 OJ。此系統常被應用於各種演算法競賽,及一般的程式練習當中,且根據其評測的機制可提供公正的判斷,更出現了許多基於此系統的線上比賽。由於 APCS 並不是天天舉辦,所以想要考好的同學們更需要藉由此來練習,增加自己的實力。

評測方式
#

對於每道題目,Online Judge 會提供一個題目描述,並要求使用者撰寫一個程式來解決這個問題。使用者撰寫完程式後,將程式碼上傳至 OJ,OJ 會對程式進行評測,評測時會將許多筆「測試是資料(簡稱測資)」輸入程式,並比對程式輸出與正確答案是否符合(通常是比對程式輸出與標準答案是否相同,但少部份題目可能會有更複雜的比對方式),若程式通過所有測資,則表示此程式通過該題目。

狀態
#

Online Judge 會根據評測結果返回狀態碼給使用者,常見的大概為下列這些

  • AC(Accept)即通過評測,為程式需要達成的目標
  • WA(Wrong Answer)表示程式輸出與正確答案不符
  • TLE(Time Limit Exceed)程式執行太慢,超過時間限制
  • MLE(Memory Limit Exceed)程式超過記憶體上限
  • OLE(Output Limit Exceed)輸出的內容超過上限
  • RE(Runtime Error)表示執行時錯誤,程式崩潰
  • CE(Compile Error)表示編譯錯誤

使用
#

Online Judge 為一種系統的總稱,而非單一個網站,目前有許多不同的 OJ 網站,每個 OJ 網站都有自己的題目庫,所以使用者可以根據自己的需求選擇適合的 OJ 網站來練習。

在未來的教學中 APCS Guide 會需要用到的 OJ:

  • Zerojudge
  • ASOJ
  • Atcoder
  • Codeforces
  • CSES
  • NEOJ

接下來的幾個章節中,我們將會介紹如何使用這些 Online Judge。

Piau 的筆記本
作者
Piau 的筆記本
希望我寫下來的東西能夠長久的記在我的腦中