概要#
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。
