作者math120908 (小小郭)
標題[轉錄][關於] 寫 Online Judge
時間Mon Oct 18 23:15:03 2010
※ [本文轉錄自 math120908 信箱]
作者:
[email protected] (
[email protected])
標題: [關於] 寫 Online Judge
時間: Mon Oct 18 23:14:18 2010
作者: skyly (skyly) 看板: NextArcadia
標題: [關於] 寫 Online Judge
時間: Mon Oct 18 22:48:22 2010
就是最近好像很多同學都
秒完 計程作業後, 覺得
不夠有挑戰性,
也有可能是
想多練練題目, 於是便開始寫外面的
Online Judge 題庫系統.
很多人可能已經聽說一些 Online Judge 了 (b99HW板應該是有人整理過),
甚至已經在上面寫了不少題目的人都有.
基於我個人來說, 我是覺得多寫就是多熟練.
有的人或許覺得
"啊我知道我會寫就好了啊~", 但
實際去寫 code 我覺得是重要的.
所以如果你 JudgeGirl 等等考古題都寫完了沒題目寫,
而你又很有上進心想要多練習一些題目, 或是想寫些有挑戰性的題目的話,
那麼這些林林總總的 Online Judge System 或許是適合你的一種選擇.
老話一句, 多練習總是會有收穫的.
那在這裡由於剛剛有人問我這方面的一些問題所以我決定要稍微講一下,
就是在 Online Judge 寫題目會遇到的一些
I/O 問題.
首先, 最需要提醒的一點就是
Output Format.
平時大家在 JudgeGirl 上面寫題目可能沒什麼感覺, 但那是 JudgeGirl
姐姐人太好.
事實上, 很多的 Online Judge 是
直接比對你的 output 跟正確的 output 之間的差別,
你只要有
1 btye 的差別都會被認定是
Wrong Answer. (除了少部分有特殊判定的題目)
所以就有個很經典的 example:
請你將輸入的 n 個數字輸出, 之間以空白隔開.
那麼, 你這樣印出來的話是錯的:
1_2_3_4_5_ (以
_ 代表空白字元)
為什麼呢? 因為你在最後一個數字後面印了
多餘的空白 !!
好, 於是你改成了:
1_2_3_4_5
咦? 怎麼還是沒過?? 因為你應該要:
1_2_3_4_5
<- 這裡有空行
這裡就講到另一個重點,
請在每行輸出之後要
換行 , 但並不是叫你
"每行輸出之後多空一行",
而就只是請你
"換行", 所以如果要輸出兩行的話應該是:
1_2_3_4_5
6_7_8_9_10
<- 這裡有空行
像這樣.
再來還有個 example:
對於每一筆測試資料, 請輸出答案, 並在每筆測試資料之間空一行.
那麼, 先不考慮你答案算錯的情況, 假設你的答案都對, 但印出:
1287
14
123
<- 這裡有空行
那麼你也是錯的, 因為是要
"在每筆測試資料之間空一行",
所以最後一筆測試資料後面
不能有空行 !!
需要小心的是, 有的時候是要求你
"在每筆測試資料之後空一行",
那麼這時就應該如上面 example 的方式輸出, 不然反而是錯的.
看到這裡你可能不禁想要
抱怨 一下: "這什麼跟什麼阿!! 寬鬆一點不行嗎!?"
事實上真的就是
不行, 好心一點的 Online Judge 可能會送你
Presentation Error
可是世界並沒有想像中的美好, 還是很多的 Online Judge 會直接賞你個
Wrong Answer
所以如果你有在寫或剛想要嘗試寫 Online Judge 的話,
建議多留意一下這些部分這樣.
再來就是
Input 的部分了,
不過礙於篇幅, 就下次再說吧.
--
※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 123.194.173.14
1F:→ ryan8175ptt2:強者太貼心了:) 大推!推 10/18 22:54
2F:→ math120908:可以借轉B99902HW嗎~XD?推 10/18 23:11
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.236.175
3F:推 m80126colin:推!! 10/19 00:46
4F:推 felixgwu:推推推! 10/19 08:25
5F:推 yuscvscv:強者文推! 10/19 10:06
6F:→ bill8124:JudgeGirl 姐姐人太好XDD 10/19 14:23
7F:推 m80126colin:Judge姐人超好~~~ 10/19 17:53
8F:推 williamiced:推推 10/19 21:38
9F:推 raychin4563:好文!! 是說要不要順便整理一下一些judge的錯誤含意 10/20 00:03
10F:→ raychin4563:EX: Wrong Answer 回答錯誤 10/20 00:04
11F:→ raychin4563:Runtime Error: 記憶體超出所開的範圍、無線迴圈..etc 10/20 00:05
12F:推 yuscvscv:無限迴圈應該還是TLE居多吧? 除非在他TLE之前先RE... 10/20 07:53