| * | Online Judge 的運作原理 |
|
裁判系統會以數量不一的測試資料去測試您所送出的程式碼來判定您的程式是否完全正確,若通過所有的測試資料的測驗,則系統認定您的程式碼為通過,否則將會呈現不同原因的結果,如 WA, TLE, MLE, OLE, CE, RE...等。因此必須在程式中放入一個 while 迴圈來讀取所有的測試資料。程式碼請參考 a001。 系統特色:
|
|
| * | 主要對象 |
| 主要對象為程式語言初學者 | |
| * | 錯誤訊息的意義 |
AC: Accept 即表示通過 由於本系統以初學者為導向,因此錯誤訊息儘可能提供最詳細的錯誤資訊,如 WA 訊息會告知您正確答案,以及在第幾組資料時發生,讓使用者比較容易判斷錯誤發生在哪哩,而不會像在ACM/UVa 裡明明做對了,但是就是有格式錯誤,卻找不出格式錯誤在哪的困境。 |
|
| * | 各項解題語言所使用的系統編譯器 |
本系統目前支援 C/C++ 及 JAVA 解題 C/C++:使用 g++ (GCC) 3.3.5 (Debian 1:3.3.5-13) |
|
| * | 使用者寫題目時建議使用的編譯器 |
| 建議使用 Dev-C++ , 請在 google 鍵入 Dev-C++ 即可找到,這個軟體是免費下載。 另外,eclipse 亦可經由安裝 plug-in(CDT 及 MinGW) 開發 C++,惟安裝過程稍嫌繁複。 建議勿使用 Turbo C++ 以及 Microsoft Visual C++ 6.0 ,該系統的編譯器過於老舊且不符標準。 |
|
| * | 題目的困難度投票 |
本系統題目每一道題目都具備有困難度的標識,以利初學者判斷。困難度標示則由所有曾通過該題目的使用者來進行投票,最後求取其平均值。困難度1 代表最簡單的題目,困難度5則代表比較困難。需注意的是,在網站上解題的高手很多,期望投票時能以初學者的角度來投困難度,而非每題都覺得很簡單就全部投 1,如此則容易導致困難度失真。 |
|
| * | 程式執行的速度的計算 |
| 本系統對每個獲得 AC 的程式會一併顯示執行時間(以毫秒為單位),程式執行時間會隨系統當時負載而有的差異,以本系統為例,一個不做工作的程式執行就會花費約 8 ms,因此初學者只需專注於程式的正確性,可以暫不需過於在意執行時間,只要在題目規定的時間內執行完畢即可。 | |
| * | 主機的等級 |
目前系統主機為 IBM Netfinity 3500,CPU Pentium III 667MHz,記憶體 512MB, 作業系統為 B2D ( Debian )。相關系統軟體為 MySQL 5, Tomcat 6.0 |
|
| * | 系統的測試資料的來源 |
| 目前題目總共分成三大類: 第一類為「基本題庫」測試資料比較少量,也不會刻意刁難。 第二類為「競賽題庫」裡面收集了 NPSC (網際網路程式設計全國大賽)的題目,則是使用 NPSC 官方提供的測資,測資通常比較大,也比較全面,因此要更小心解題。 第三類為「ACM 題庫」收集了一些 UVa/ACM 比較簡單的題目,部分測資採用"星子ACM小窩"的測資,部分收集自官方討論區。 |
|
| * | 分數的計算原則 |
| CE: -16 分, RE: -8 分, MLE: -4 分, TLE: -2 分, OLE: -1 分, WA: 0 分--累進制 AC 者 100 分--不累計。 |
|
| * | 分段計分原則 |
任一題目均可以依照出題者意願設定成分段或不分段計分。出題者最多可分為 10 段計分,分段計分採用累進制,也就是說,任一段測資點必須通過才能進入下一段測資點。每一段測資點由出題者決定配分多寡,通過前 n 段測資即可獲得前 n 段配分和。 分段計分多用在考試或比賽中作為更精確的計分使用。平常的練習系統則必須通過所有的測資點才會獲得 AC 。 |
|
| * | penalty 的計算原則及目的 |
| penalty 是在程式競賽中評斷選手表現的一個指標,主要目的就是要了解選手解題速度及錯誤率。本系統的 penalty 規則為:當題目通過時即加上通過時的時間(以分鐘計),當送出的題目不通過,則 penalty 每一次再加 10 分鐘。在相同的正確題數下,penalty 越低排名越高。 | |
| * | JAVA 解題範例 |
|
基本讀取方法如上,類別名稱請指定為 JAVA, ZeroJudge 系統會做必要的處理。 |
|
| * | C 解題範例 |
| * | C++ 解題範例 |
| * | 統計數據說明 |
註冊人數:從 2006-06-08 開始統計的總註冊人數 |
|
| * | 小圖示所代表的意義 |
|
|
| * | 解題過程中的疑難雜症 |
‧若使用 Microsoft Vistual C++ 6 很容易出現編譯錯誤,因為VC6 並未依循 ISO /ANSI C++ 98 的標準,比如 void main() 這類的寫法都能通過 VC6 但送上Judge 系統則會出現編譯錯誤。 |
|
| * | 畫面醜陋的原因 |
| 由於 IE 6.x 對於 PNG 圖片的支援不佳,會使 PNG 透明圖失效,因而產生灰色的底圖,非常醜陋。雖然已經利用了一段特定 JavaScript 來專門處理 IE 的這個問題,但某些非典型 IE (IE 的行為不正常)仍會出現灰色底圖。解決方式為放棄 IE 瀏覽,本站較適合的瀏覽環境為 FireFox。 | |
| * | 後記:關於 ZeroJudge |
| ZeroJudge 是一個 Online Judge 系統亦即線上解題系統,中文來說有許許多多不同的翻譯名詞,諸如:在線裁決系統、在線評判系統、在線提交系統...等等不一而足,建議還是直接稱呼 Online Judge 系統。主要是用來讓有意練習程式語言的人士(主要是學生),有一些題目可以練習,並且可以知道自己所寫的程式是不是正確。 |