OpenJudge NOI
定义
OpenJudge NOI指在线评测平台OpenJudge中名为「NOI」的小组,是该平台下一套以信息学奥林匹克竞赛为方向的中文题库。在线评测系统(Online Judge,简称OJ)的工作方式是:用户阅读题面、设计算法并提交源代码,系统随后用预设的测试数据对程序做黑盒测试,判断其正确性与运行效率,再把结果返回给用户[4]。OpenJudge本身定位于小组式评测服务,任何机构都可以在其中建立自己的小组并发布题目[1],NOI小组只是其中一个小组,题面与界面均为中文。
题集的组织方式以知识点分章,章节名称为「编程基础之输入输出」「编程基础之变量定义、赋值及转换」「编程基础之算术表达式与顺序执行」「编程基础之循环控制」「编程基础之一维数组」「编程基础之字符串」等,每章按题目编号排列[5]。据一份据题面缓存整理的题单统计,这一系列共分38个章节、收录617道题[6];其中第一章「输入输出」为10题,第二章10题,第三章20题,第五章「循环控制」45题[5]。入门章节的题目多为格式化输出、数据类型转换、条件判断、循环累加等基础练习[7]。
原理
评测的基本流程是提交、编译、运行、比对、反馈。前端服务器收到提交后,把评测任务异步交给后端评测机;评测机完成编译,在受限制的环境中以预设输入运行程序,把输出与标准答案逐字节比较,并记录耗时与内存占用,最后把结论回传给前端服务器。整个过程通常在数秒内完成[4]。
评测结论沿用在线评测系统的通用分类:通过(AC)、答案错误(WA)、编译错误(CE)、运行时错误(RE)、运行超时(TLE)、内存超限(MLE)、输出超限(OLE)等[8]。由于采用黑盒比对,程序不仅要逻辑正确,输出格式也必须与题目要求严格一致[9]。题目一般给出总时间限制与内存限制,例如总时间限制1000毫秒、内存限制65536千字节一类的参数[10]。
发展历程
OpenJudge的源头是北京大学的在线评测平台POJ。POJ自2003年上线,主要服务ACM/ICPC竞赛训练与程序设计课程教学;据平台方公布的数据,到公开OpenJudge时POJ已累计注册约20万用户、收到逾800万次提交[1][9]。因为许多师生希望搭建自己的评测系统却受限于技术与服务器条件,团队开发了新的平台,OpenJudge由此在2005年推出,定位为可自建小组的开放评测平台[1][11]。
NOI小组在早期曾承担官方题库的角色,题目数量约为600道,后来因为出现了新的官方题库而停止更新[3]。题面页面也出现过提示,说明题库仍在建设中、做题记录可能被删除[12]。平台的运营维护长期由北京大学信息科学技术学院人工智能实验室负责,并为NOI、ACM等程序设计竞赛提供技术支持[2]。同属该平台的还有面向北京大学校内教学与考试的「百练」小组,其题量更大,收录了原POJ题目与新题[3]。
应用
最直接的用途是配合教材做同步练习。《信息学奥赛一本通》等教材的习题与该题库相对应,学习者按书中的知识点顺序在对应章节提交代码[3]。由于章节从输入输出、变量、表达式一路排到循环、数组、字符串,初学者可以按顺序推进,逐步熟悉一门语言的语法与常见写法。
在竞赛训练体系中,这一题库通常被安排在起步阶段使用。相关资源汇总把它与洛谷、Codeforces等平台并列,作为国内常用的练习与备赛评测站点[11]。也有学校以OpenJudge的小组功能开展课程教学,例如中国科学技术大学曾在平台建立课程小组,用于布置并检查上机练习[8]。此外,平台还被用于承载更专门的教学实验,如北京大学把问题建模训练系统集成到OpenJudge上形成独立小组[4]。
局限
题集定位偏基础。据使用者整理的评价,该题库按知识点划分、难度较高的题目较少,达到省级一等奖所需的训练量难以仅靠它完成,通常在普及组阶段之后便较少使用[3]。同类题型的数量也相对有限,覆盖面不如综合性题库广[13]。
题集已不再随竞赛更新。作为早期官方题库,它在新的官方题库出现后停止维护,题目与竞赛现行大纲之间可能脱节[3]。平台层面也存在约束:小组功能上线初期对成员数设有上限,测试期间暂定为200人[1]。在线评测本身只给出结论类别与耗时、内存数据,不解释算法错在哪里,学习者需要自行定位问题。
参见
-
在线评测系统 —— 自动运行并判定程序正确性与效率的系统,是本词条所依托的技术形态。
-
北京大学 —— OpenJudge平台及其POJ前身的开发与维护单位所在高校。
-
全国青少年信息学奥林匹克竞赛 —— 题库名称中NOI所指的竞赛活动。
-
信息学奥赛一本通 —— 与该题库章节配套使用的竞赛入门教材。
-
洛谷 —— 国内另一常用信息学竞赛题目与评测平台。
参考资料
- POJ团队发布OpenJudge平台,快来搭建属于你自己的OnlineJudge系统 [引用日期2026-10-29]
- 人工智能实验室 [引用日期2026-10-29]
- Update NOIP 00 OJ简介.md · Ewenwan/OI@0eded69 [引用日期2026-10-29]
- pku.edu.cn 上的 PDF 文件 [引用日期2026-10-29]
- 刷题笔记(noi.openjudge.cn) [引用日期2026-10-29]
- OpenJudge 全站题单 [引用日期2026-10-29]
- NOI(OJ)编程基础篇 [引用日期2026-10-29]
- IDE和POJ简介 [引用日期2026-10-29]
- POJ [引用日期2026-10-29]
- OpenJudge [引用日期2026-10-29]
- 学习资源 [引用日期2026-10-29]
- 整理小朋友在noi.openjudge上的作业(1) [引用日期2026-10-29]
- 编程刷题,选对平台也很重要,这几个平台快快收藏 [引用日期2026-10-29]