POJ使用指南

Hello,POJ!

毋庸置疑,学习程序设计就是奔着“程序员梦”去的。编程本质是运用计算机科学的基本思想求解问题、设计系统以及理解人类的思维行为和普适技能,核心是“实现”。因此,诸如“中国梦”、“程序员梦”是编写出来,即“Coding Now,Programming Future”。

在这个学期,你将尝试用“编写”的方式去“实现”,体验与过去完全不同的“实现”。在这个过程中,有太多的“if”不确定、有太多的“for”死循环、有太多的“bug”愁断魂,“实现”并不容易。

有人的地方就有江湖,有江湖的地方就有武林大会。POJ(Problems Online Judge)是学编程的江湖。在这里,做习题叫做“刷题”,习题做错叫做“被挖”(WA=Wrong Answer,结果错误),习题通过叫做“A了”(AC=Accepted,结果通过),简单习题称为“水题”,“刷一圈”指连续刷题12小时以上。

总会有人用一、两周的时间完成100题的OJ,这不叫“刷题”,叫“梦游”。2012学年,一个大三的哥哥将100题的源码整理出版了(长安校区超市旁的复印店),大一亲们蜂拥而至,一时间“A4纸贵”,交叉着下载、复制、粘贴、上传的能力训练,唯独不见“编写”。待到期末上机考试,亲们那双瞠目的眼睛与希望工程那双大眼睛神似,最终贡献了两位数的GDP。有道是出来混的,迟早要还,哥哥今昔完美毕业,亲们继续“梦游”。

没有实现,何来现实?

Hello,POJ!

POJ使用指南

记分规则

全部习题分十组,累计100题(C),每题0.6分。

提交规则

欲提交作业,只需将源程序文件上传到自己的网络硬盘中。在网络硬盘中建立一个名字为“CPP”的目录,此后所有要提交的POJ习题文件均上传于此。

注意:所有其它取名以及不把文件上传到该目录中的提交均会导致机器不能自动批阅。

文件规则

1.作业文件命名在“试题要求”中指定; 2.C/C++作业文件扩展名为“.CPP”;

3.除源文件外,一般的,无需再提交别的扩展名文件,例如:工程文件以及其它中间临时文件。 4.POJ不支持内含非标准的头文件,例如:stdafx.h文件。

5.POJ只允许单个程序单个独立源文件,多源文件程序导致编译错误。 6.关于MAIN函数

提交的所有源程序必须符合C99标准,其中Main 函数的写法要求如下: int main() { …

return 0; }

IO规则

POJ评阅习题时需要向程序提供输入数据,并获取程序的输出结果。因此提交的程序需按照每个习题具体的输入输出格式要求处理输入输出。

1.提交的程序总是使用标准输入流设备(stdin)和标准输出流设备(stdout)来处理输入输出,即对于C程序使用scanf和printf,C++程序可使用cin和cout或scanf和printf。

2.如果程序状态是“数据错误”或“结果错误”,有可能与没有正确使用输入输出格式有关。 3.如果使用cin和cout,由于其实现的复杂性,可能要比scanf和printf执行慢。 4.关于输出格式的说明 ? 对于输出示例中的汉字、字母及特殊符号要严格按要求输出;要区分字母的大小写(一般为小写),特殊符号要注意全角和半角之分。

? 输出一个数据:数据后加换行。 ? 输出一行数据:数据间用一个空格间隔(或指定的间隔符) ,行尾加换行(换行前可有一个空格)。

? 输出多行数据:每行的数据间用一个空格间隔(或指定的间隔符),行尾只加换行。

评阅规则

POJ采用“动态执行追踪”技术来动态跟踪程序的运行,并结合程序的输出结果判断程序的正确性。 一般的,编程者按照习题的要求仔细编写程序,并按指定的格式和提供的范例数据调试,如果能得到范例结果,通常就可以确定程序是正确的。但POJ评阅程序时采用多组数据同时测试,因此程序结果可能并不符合其要求,这时编程者需要再通盘考虑程序的方方面面,看看是哪个环节尚未得到解决。

例如T005.cpp 若输入1234 输出:no 输入:101 输出:??

下面是POJ评阅后反馈的信息: ? 等待评阅(WJ,Waiting Judge)

作业模式为等待评阅。竞赛模式为正在评阅。 ? 编译错误(CE,Compile Error)

程序有语法错误,没有通过编译和连接。 ? 系统错误(SE,System Error)

由于计算机系统方面的原因不能运行程序。例如程序运行要求的内存超过硬件限制。 ? 校验错误(VE,Validate Error)

不明确的原因不能获取程序的输出。 ? 运行时错(RE,Runtime Error)

程序运行过程中发生严重错误,例如异常、堆栈溢出、非法文件访问或内存访问、数组或指针越界、除数为0等。

? 内存错误(ME,Memory Limit Exceed)

作业模式为程序运行消耗内存过大,例如:堆分配失控等。竞赛模式为程序所使用的内存空间超过了题目的限定。

? 超时错误(TE,Time Limit Exceed)

作业模式为程序运行时间过长,例如:死循环等。竞赛模式为程序没有在限定时间内执行完。 ? 输出超限(OE,Output Limit Exceed)

程序产生了过多的输出。达到了标准输出文件五倍以上,一般是由于死循环导致的,注意:死循环也有可能导致TE。

? 结果错误(WA,Wrong Answer)

程序没有得到正确的输出结果。 ? 数据错误(PE,Presentation Error)

虽然程序的结果是正确的,但是输出结果的格式不对,应该是在某些位置上多输出了空格、TAB、回车字符、空行等。

? 结果通过(AC,Accepted)

程序运行得到了正确结果。

某些时候,程序可能同时出现几种错误。对于这样的情况,评测系统会根据错误优先级的高低返回结果。优先级:WJ>CE>SE>VE>RE>ME>TE>OE>WA>PE>AC

示例

FileName Title Time Limit Memory Limit Description Input

习题所要求的文件名 习题标题 程序运行时间限制 程序内存空间限制 习题描述 输入要求、描述

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4