咨询时间:9:00~21:00 400-059-6872

    您的位置: 主页 > 内容中心 > 小码问答>什么是OJ,OJ是做什么的?

    什么是OJ,OJ是做什么的?

    导读:OJ全称OnlineJudge,也就是在线评测系统,是编程竞赛必备的自动判题平台,ACM、蓝桥杯、NOIP等赛事基本都依靠OJ完成程序评测,不需要人工阅卷。在各
    答

    OJ全称OnlineJudge,也就是在线评测系统,是编程竞赛必备的自动判题平台,ACM、蓝桥杯、NOIP等赛事基本都依靠OJ完成程序评测,不需要人工阅卷。

    在各类程序设计竞赛中,选手写完代码提交之后,不会依靠老师人工看代码对错,全部交给OJ系统自动完成检测。它除了判断运行结果是否正确,还会自动编译代码,检测程序运行的时间限制、内存占用情况,这些指标人工很难快速、准确完成,所以编程竞赛普遍使用OJ作为核心评测工具。

    OJ采用黑箱测试的工作逻辑。系统会使用多组测试数据运行你的程序,对比程序输出和标准答案,比对时非常严格,空格、换行这类细节都会纳入判断。新手很容易踩坑,比如代码里写printf("Please input:");这类提示文字,这段文字会被当成输出内容参与比对,就算计算结果正确,整道题也会被判答案错误,拿到0分。

    OJ的题目一般包含题目描述、输入格式、输出格式、样例输入、样例输出。样例只是用来帮助理解题目的示例,正式评测时会有多组测试用例,包含常规数据、边界值、极端大数等情况,数量可能十几组甚至几十组。像简单的a+b题目,不会只测试1+1,还会测试大数、进位等特殊场景。ACM比赛只要一组数据不通过,该题直接判错;蓝桥杯则是按通过的测试用例拿部分分数。

    目前有不少常用OJ平台,比如北大POJ、杭电HOJ、国外UVA,还有适合新手的中文平台Dotcpp。不同平台侧重点略有差异,ACM相关OJ大多是英文题目,蓝桥、信奥类配套OJ以中文题目为主。不同平台的算法题目可以互通,不管是赛前刷题练习,还是日常训练算法、数据结构,都可以在OJ上提交代码练习,是学习竞赛算法的核心工具。

    007.png

    免责声明:本文为小码王原创内容,版权归小码王所有。本文标题:什么是OJ,OJ是做什么的?,原文地址:https://www.xiaomawang.cn/wenda/67815.html。欢迎转载,转载请说明出处。若您认为本文侵犯了您的版权信息,或您发现该内容有任何涉及有违公德、触犯法律等违法信息,请您立即通过邮件(邮箱号:hzlixy@xiaoma.cn)联系我们及时修正或删除。
    回到顶部
    弹出表单占位框
    免费领取小码王少儿AI编程体验课