Skip to content

提交代码 ​

一句话:Neuro OJ 目前只评测 Python 3;实现题面声明的函数,用「提交评测」入队,用「自测」先行验证。

本页说明提交代码的约定:语言选择、函数实现与提交后的流程。

选择语言 ​

语言标识说明
python3 / pythonPython 3(唯一具备评测运行时的语言)
cpp / c / javascript接口预留标识,无评测运行时,无法评测

运行时现状

当前评测运行时仅完整支持 Python(多语言评测为项目的决策性不做项)。编辑器中的语言下拉固定为 Python 3,请始终用 Python 提交。

题目详情页与编辑器当前只提供 Python 3;提交记录筛选器仍列出其他语言标识,仅用于查看历史,不代表可评测。

实现题面要求的函数 ​

优先实现题面声明的函数。例如:

python
def solve(a: int, b: int) -> int:
    return a + b

不要依赖顶层 print() 作为答案输出——Neuro OJ 的 Python 双容器评测通过 Solution Host 加载你的模块,由 evaluator 调用函数评分。

函数是如何被调用的

Solution Host 会自动注册模块中的顶层函数(无需显式装饰器):只要函数名与题面声明一致,evaluator 就能按名调用。把答案写在函数体内,而不是模块顶层。

调试输出 ​

print() 可以用于辅助调试,但它不是答案通道。

调试信息看不到

当前 Solution 容器的 stdout 是评测协议通道,用户代码直接 print() 的普通文本会被协议层丢弃,不会作为评测输出展示。请把要反馈的中间值作为函数返回值或写入 evaluator 能读取的数据,不要依赖 print() 查看调试信息。

代码限制 ​

限制项数值说明
代码体积100KB提交时按字符数校验,超出直接拒绝
输出展示8KB提交详情中的评测输出超出即截断(数据库保留完整内容)
时间 / 内存由题目决定由题目的运行时配置设定,超出得到对应的资源限制状态

产物提交 ​

若题目标记为「产物提交(artifact)」,请上传一个 zip 文件,而不是填写代码。

产物提交的约定

  • Judge Worker 会将 zip 解压到 Solution 容器的 /workspace,并从约定的 submission.py 入口加载。
  • 上传仅支持 .zip,且必须校验为有效 zip(PK 头);实际大小上限取「题目配置上限」与「系统硬上限(默认 2GB)」中的较小值。
  • 题目可能要求使用 noj-solution-ai 提供的 CPU PyTorch、CV/ML 依赖。

产物提交不可重测

产物提交在评测完成后即删除存储对象,不支持重测。如需修改产物,只能重新提交。

自测 ​

编辑器顶部的「自测」按钮会向评测队列提交一个 self_test 任务,用你当前编辑器中的代码运行一次评测。它不进入正式提交记录,适合在正式提交前快速验证语法、函数签名与基本行为。

  • 自测与正式提交走完全相同的评测流程,状态同为 pending / judging / finished / error。
  • 同样受代码大小、语言与运行时配置限制。
  • 结果在编辑器侧栏与「评测队列」页可见;自测不参与统计、榜单与 AC 判定。

提交后 ​

  1. 任务进入评测队列,编辑器侧栏实时显示状态徽章与已等待时长。
  2. 在「提交记录」页查看全部历史,可按题目、语言、状态筛选(日期范围筛选由 API 支持,界面筛选栏主要为题目 / 提交编号 / 语言 / 状态)。
  3. 打开单条提交查看详细结果;排队中会在提交详情页显示 #排队位置/队列长度。

提交详情页展示状态徽章、得分、用时与内存、标准输出与代码。

可见性

代码、评测输出与用例级详情仅提交者本人和管理员可见;其他用户只能看到状态、得分、用时与内存。

常见错误 ​

现象可能原因处理
函数不存在(NotFoundError)函数名与题面声明不一致,或模块导入失败(如顶层语法错误)核对函数名与签名,确认模块可正常导入
finished + 0 分或部分分返回值类型 / 结果不满足评分条件对照题面的输入输出约定检查返回值
error评测环境、镜像或题目配置异常通常不是改代码能解决的,请联系运营者

完整状态说明见理解结果。

Neuro OJ 是一个独立社区项目,与 CCF、LMCC、IOAI 及 NOAI 无官方关系。