OJ是Online Judge系统的简称,用来在线检测程序源代码的正确性。著名的OJ有RQNOJ、URAL等。国内著名的题库有北京大学题库、浙江大学题库等。国外的题库包括乌拉尔大学、瓦拉杜利德大学题库等。
简介:
Online Judge系统(简称OJ)是一个在线的判题系统。用户可以在线提交程序多种程序(如C、C++)源代码,系统对源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。
程序:
一个用户提交的程序在Online Judge系统下执行时将受到比较严格的限制,包括运行时间限制,内存使用限制和安全限制等。用户程序执行的结果将被Online Judge系统捕捉并保存,然后再转交给一个裁判程序。该裁判程序或者比较用户程序的输出数据和标准输出样例的差别,或者检验用户程序的输出数据是否满足一定的逻辑条件。最后系统返回给用户一个状态:通过(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),并返回程序使用的内存、运行时间等信息。
Online Judge系统最初使用于ACM-ICPC国际大学生程序设计竞赛和OI信息学奥林匹克竞赛中的自动判题和排名。现广泛应用于世界各地高校学生程序设计的训练、参赛队员的训练和选拔、各种程序设计竞赛以及数据结构和算法的学习和作业的自动提交判断中。
知名的OJ有:RQNOJ,URAL,SPOJ,vijos,tyvj,USACO,sgu,pku(poj),zju(toj),tju,uva等。
POJ:
POJ是北京大学的在线评测系统.我主要在做的一个.题目数量很多,OJ的各项功能也很完善,而且还提供免费的OJ系统下载,可以利用提供的系统自己搭建OJ.题目数量很多,有几千道,但水题也很多.关于这一点,因为题目数量大,所以水题自然就多,但这不说明POJ的题目质量不高.POJ的难题还是不少的,而且做不做水题还是要由做题人自己决定的,和OJ无关.
推荐做法:
如果是初学者或者仅仅想提高编程准确性,那么按照AC率做,保证1Y率;如果是有一定水平的OIer,可以每页完成40~50题;如果是大牛,那么尽量做吧;如果想专门训练某个项目,可以去网上搜POJ题目分类,个人觉得POJ里的dp题和数学题比较多.
所使用的程序:
POJ,许多OJ都是采用的这个程序,可以说是北京大学创造了这个程序。
在北京大学JudgeOnline里面就有这个程序的下载,不过需要先填写申请表。
进入OJ,点击“ Download free version of Judge Online ” 就可以看到申请表。
ZOJ:
http://acm.zju.edu.cn/onlinejudge/
ZOJ是浙江大学的在线评测系统.国内起步最早的几个OJ之一.题目数量也接近2000.我没有太多的做zju的题目,所以不好说题目质量如何.OJ系统的友好性不如pku,但功能并不差.应该可以作为pku的替代品.
推荐做法:
无(可以参考pku做法)
HOJ:
HOJ是哈尔滨工业大学的在线评测系统,相对来说起步不早也不晚,曾经也涌现了许多大牛。现在题目数量接近3000,难度参差不起,由于学校开始重视其ACM,最近活动频繁。最近新版的系统上线,相对老版来说友好性和功能都有提升。