作者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