OJ的介绍以及使用方法

OJ系统简介

Online Judge系统(简称OJ)是一个在线的判题系统。用户可以在线提交程序多种程序(如C、C++) 源代码,系统对源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。

一个用户提交的程序在Online Judge系统下执行时将受到比较严格的限制,包括运行时间限制,内存使 用限制和安全限制等。用户程序执行的结果将被Online Judge系统捕捉并保存,然后再转交给一个裁判 程序。该裁判程序或者比较用户程序的输出数据和标准输出样例的差别,或者检验用户程序的输出数据 是否满足一定的逻辑条件。(PS:OJ系统其实比较傻,所以你的输出内容必须和题面要求的一模一样,甚至空格和回车都得一样,否则就会被判定为错误)最后系统返回给用户一个状态:通过(Accepted)、答案错误(Wrong Answer)、超时(Time Limit Exceed)、超内存(Memory Limit Exceed)、运行时错误(Runtime Error)或是无法编译(Compile Error),并返回程序使用的内存、运行时间等信息。

Online Judge系统最初使用于ACM-ICPC国际大学生程序设计竞赛和OI信息学奥林匹克竞赛中的自动判 题和排名。现广泛应用于世界各地高校学生程序设计的训练、参赛队员的训练和选拔、各种程序设计竞 赛以及数据结构和算法的学习和作业的自动提交判断中。

OJ常见判题结果解释(以PTA为例)

这里以PTA系统的判题结果为例,不过各个OJ系统判题结果都是大同小异。至少会包含通过(Accepted)、答案错误(Wrong Answer)、超时(Time Limit Exceed)、超内存(Memory Limit Exceed)、运行时错误(Runtime Error)或是无法编译(Compile Error)这几种结果

结 果 说 明
提交成功 对于判断、选择、填空题,系统已经接收到您的提交
已被覆盖 对于判断、选择、填空题,该提交已经被您的当前提交所覆盖,系统将只评判题目集关闭前对该题目的最后一次提交
等待评测 评测系统还没有评测到这个提交,请稍候
正在评测 评测系统正在评测,稍候会有结果
编译错误 您提交的代码无法完成编译,点击“编译错误”可以看到编译器输出的错误信息
答案正确 恭喜!您通过了这道题
部分正确 您的代码只通过了部分测试点,继续努力!
格式错误 您的程序输出的格式不符合要求(比如空格和换行与要求不一致)
答案错误 您的程序未能对评测系统的数据返回正确的结果
运行超时 您的程序未能在规定时间内运行结束
内存超限 您的程序使用了超过限制的内存
异常退出 您的程序在运行过程中崩溃了
非零返回 您的程序结束时返回值非 0,如果使用 C 或 C++ 语言要保证 int main 函数最终 return 0
段错误 您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起
浮点错误 您的程序运行时发生浮点错误,比如遇到了除以 0 的情况
输出超限 您的程序输出了过多内容,一般可能是无限循环输出导致的结果
内部错误 评测系统发生内部错误,无法评测。工作人员会努力排查此种错误
运行时错误 您的程序运行时发生错误,比如 C 语言数组越界访问或 Python 语言运行时抛出异常等

OJ系统的使用(以PTA为例)

打开PTA的编程题题面界面,会出现如下界面
在这里插入图片描述
对于函数题的话,跟编程题差不多,但是不需要你实现一个完整的程序,只要把题面给的函数接口实现了就行。具体说明如下
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43058685/article/details/108164798