# Online Jugde 線上解題系統 [toc] ## 線上解題系統 **Online Jugde** 簡稱OJ,中文為「線上解題系統」。 ![](https://i.imgur.com/AEnywAn.png) 上有許多題目,將程式依照題意寫出,丟上 OJ,它就會幫你的 code 判斷是否正確。題目會給你一個輸入(input),然後要你給一個對應的輸出(output),而中間的問號,即是我們需要寫出的程式。 若是 OJ 判斷完全正確,就會顯示 AC,錯誤則顯示 NA、WA 等。常見者說明如下: - **AC** (Accept):通過 :100: - **NA** (Not Accept):未通過所有測資 - **WA** (Wrong Answer):答案錯誤 - **TLE** (Time Limit Exceed):執行時間超過限制 - **CE** (Compile Error):編譯錯誤 - **RE** (Runtime Error):執行時錯誤,多為記憶體配置錯誤(如:使用了超過陣列大小的位置) 並不是每個 OJ 都用這套,但在說明的地方都可以找到簡寫對應的說明。 > 測資:測試資料的簡稱,每筆測資會包含輸入與輸出,用來測試上傳的程式是否正確。 ## 題目組成 直接來看看一題 :point_right: [連結](https://zerojudge.tw/ShowProblem?problemid=a002) ### 內容/題幹(content) 有些題幹會很長很長,甚至像在考閱讀題,因此可以先看範例測資,從輸入和輸出中尋找關聯性來猜題。若從測資看不出題目要什麼,再回來看題目。 ### 輸入說明(input format) - 測資的格式 - 測資的範圍 ### 輸出說明(output format) - 輸出的格式 - 時間限制(time limit) - 記憶體限制(memory limit) ### 範例測資(sample test data) - 範例輸入(sample input) - 範例輸出(sample output) 範例測資正確,並不代表所撰寫的程式完全正確,因此不可過度依賴範例測資。而輸出的答案,是出題者設好的,所以有機會遇到題目本身的輸出就是錯誤,在大神級的比賽中比較常見。同樣的,也會有程式寫的不完全,卻得到 AC 的情況,稱之假解。因此建議初學者找較熱門的題目來練習,比較不容易踩雷。 ## [HWSH Judge](http://203.64.159.117/) - 中文 - 可用語言: C、 C++、JAVA、PYTHON3 ## 適合初學者的 OJ ### [zorejudge 高中生程式解題系統](https://zerojudge.tw/) - 中文 - 可用語言: C、 C++、JAVA、PYTHON3 - 說明: 1. 進入後點擊右上角的「註冊」(可直接用 google 帳號) 1. 登入後進入「分類題庫」,尋找適合自己的題目 1. 程式寫完後滑到題目的下方有一排綠色的按鈕,選「送出解題」 1. 點選自己使用的語言,並將程式碼貼在框框中 1. 「送出程式碼」等待結果 1. 若結果非 AC,可點開「評分結果」那排的藍字,會有詳細的錯誤原因 ### [greenjudge 台中女中程式解題系統](http://www.tcgs.tc.edu.tw:1218/) - 中文 - 可用程式語言: C、 C++ ## 較進階的 OJ ### [Codeforces](https://codeforces.com/) - 國內外知名的程式競賽網站,國內競程圈的主流 別人寫的 :point_right: [Codeforces 快速入門 (簡介、介紹、教學)](https://changyuheng.github.io/2010/codeforces-quick-start.html) ### [CodeWars](https://codewars.com/) - 英文 - 可用程式語言:好多 ### [HackerRank](https://www.hackerrank.com/) - 英文 - 可用程式語言:好多 - 平台上有教學課程,可跟著教學一步一步的解題