本文简要介绍了OJ(Online Judge)的原理、注意事项、使用时如何正确处理输入/输出格式,以及常见的结果状态及原因。建议首次尝试在线编程题目的同学入门必看。
一、OJ简介
Online Judge系统(简称OJ)是一个在线的判题系统。用户可以在线提交程序多种程序(如C、C++)源代码,系统对源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。
----以上内容来自百度
简而言之:用户在前台提交程序;后台编译并执行,将结果存放到文件;通过文件和标准答案相比较,得出结果。
二、注意事项
一个用户提交的程序在OJ系统下执行时将受到比较严格的限制,包括运行时间限制,内存使用限制和安全限制(防止用户恶意操作)等。
有严格的输入/输出格式;有的OJ对java语言要求自己使用固定类名Mair。
通过简单比较文件判断输出数据和标准输出样例的差别,或者检验用户程序的输出数据是否满足一定的逻辑条件,最后返回给用户一个状态。因而OJ不太在意细节。
三、应对措施
正确处理输入(键盘输入)、输出(屏幕输出)格式
采用标准输入/输出,无需考虑读写文件
四、如何正确处理输入格式
预先不输入数据的数组
处理方式 ----读到文件结尾
如:
2.预先输入数据的数组
处理方式 ----读数组然后进行循环
如:
3.只有一组数据
处理方式 ----直接读取
如:
注意:
可以不用保存所有输入,读一组计算一组;字符串带空白的情况。
五、如何正确处理输出格式
注意细节,看题目要求,如:
不需要输出case数
需要输出case数
每个case之后有空行
两个case之间有空行
输出与题目要求严格一致!
注意:字母大小写;何时换行;输出“case”后有没有“#”“:”等;每行末尾有\n,但一般没有空白;用printf代替cout。
六、常见OJ结果状态及原因
通过(Accepted,AC)
答案错误(Wrong Answer,WA)
超时(Time Limit Exceed,TLE):程序太慢(不一定错误)
输出超限(Output Limit Exceed,OLE):输出太多
超内存(Memory Limit Exceed,MLE):使用太多内存
运行错误(Runtime Error,RE):指针指乱
格式错误(Presentation Error,PE):多输出空白等
无法编译(Compile Error,CE),并返回程序使用的内存、运行时间等信息。
以上就是关于OJ的简单常见问题,不了解的同学们可以涨涨姿势,希望童鞋们在线编程题都能够全部AC哦~~
■ Over ■
-------------------------------------
【比特学员】 优秀博文
---------------------------------------
比特 | 文件压缩扩展之 LZ77压缩
比特 | 智能指针那些事儿
比特 | C++实现红黑树
比特 | 【C++】解析虚函数表和虚继承
比特 | C++多态(上)——虚函数、虚表
比特 | 【c++】深入剖析各种继承下的对象模型
比特 | 单链表面试题——进阶篇
比特 | AVL树
比特 |【网络】网络基础知识总结
比特 | 僵尸进程和孤儿进程
比特 | Linux下的信号
比特 | NAT技术与代理服务器
比特 | TCP协议的"三次握手"和"四次挥手"
比特 | Linux中消费者与生产者模型