Repository navigation
Judging
dxx114514-stack edited this page Oct 1, 2026
·
2 revisions
评测语言由提交文件的扩展名决定:
| 扩展名 | 编译 / 运行 | 说明 |
|---|---|---|
.cpp .cc .cxx
|
g++ -O2 [-static] -o program |
Linux 评测需安装 g++ |
.c |
gcc -O2 [-static] -o program |
|
.py |
python3(Windows 为 python) |
免编译,按 PATH 解析解释器 |
.java |
javac -d <workdir> → java -cp <workdir> <MainClass>
|
JVM 虚拟内存占用大,内存限力建议 ≥ 2048MB |
.js |
node |
免编译 |
| 其它 | 自定义语言(见 自定义评测语言) | 未注册的扩展名评测为 CE(Unsupported language) |
- 编译命令中的
[-static]仅 Windows 附加(platform::staticLinkFlag()),Linux 评测编译不加静态链接参数 - 仅
answers_only题型接受目录或.zip提交(逐文件比对同名答案) - 编译器本身在可信模式下运行,超时上限
judge.compile_time_limit_ms(默认 10000ms);选手代码在沙箱中执行(见 沙箱与安全)
| 题型 | 说明 |
|---|---|
traditional |
传统题:输入文件 → 标准输出 |
answers_only |
答案文件题:接受目录或 zip,逐文件比对同名答案(扩展名 -answer-ext,默认 out) |
interaction |
交互题:选手程序与交互器(-interactor)双向通信 |
communication |
通信题 |
communication_exec |
通信题(执行模式) |
| 模式 | 语义 |
|---|---|
text_strict |
逐字节严格比较(CRLF/LF 归一化),默认 |
text_line |
逐行比较(忽略行末空白);答案还有内容而选手先结束 → WA,反之 → OLE |
text_no_space |
忽略空白按 token 比较;token 全等但行结构不同 → PE,多余内容 → OLE |
float_abs |
实数绝对误差(超出 -float-abs 判错;未设容差默认 1e-6) |
float_rel |
实数相对误差(相对标准答案;未设容差默认 1e-6) |
float_all |
综合误差:` |
spj |
自定义 SPJ:argv = (输入, 选手输出, 标准输出),exit 0 → AC 否则 WA,超时 → ST |
spj_lemon |
LemonLime 6 参数 SPJ(额外 fullScore/scoreFile/msgFile),按分值判 AC/PC/WA |
spj_testlib |
testlib SPJ:解析 stderr 的 ok / partially correct (N) / points X 等 |
非 text_strict 的比较模式会自动把题型置为 traditional(-type 在其后解析,可覆盖)。
text_strict是逐字节比对:测试数据与标准答案文件的最后一个换行符也必须一致,否则 WA。
-
计分聚合(
-subtask-mode):simple/group= 求和;all_or_nothing= 取最小分 -
依赖(
-dependence,JSON 如{"2": [1]}):依赖子任务得 0 或 SKIPPED → 被依赖者 SKIPPED;依赖部分得分 → 按比例封顶
| 键 | 默认 | 说明 |
|---|---|---|
compile_time_limit_ms |
10000 | 编译超时 |
special_judge_time_limit_ms |
10000 | SPJ / 交互进程超时 |
source_size_limit_kb |
50 | 源代码大小上限 |
rejudge_times |
1 | 边界 TLE 自动重评测次数(0..12) |
max_rejudge_times |
12 | 手动 rejudge 允许的最大评测次数 |
max_judging_threads |
4 | 并行评测线程数 |
extra_time_ratio |
0.1 | 额外时间比(贴线 TLE 缓冲) |
file_write_limit_kb |
16384 | 子进程写文件大小上限 |
env |
{} |
追加给子进程的环境变量 |
custom_languages |
内置 judgelang
|
自定义评测语言注册表(见 自定义评测语言) |
题目可附带生成器(-generator 源码内嵌或 -generator-exe 外部可执行文件):每次评测前按测试点编号运行,把结果写入该测试点的 data.in / data.out。占位测试点(create - -)即由生成器产出数据。
- 生成器固定限制 10s 墙钟 / 1024MB 内存(可信模式、可写工作目录);生成失败或未写出
data.in/data.out→ 该测试点判 SE(System Error: generator failed on test point N: …) -
answers_only题型与交互题(交互器就绪)不运行生成器(communication_exec照常运行) - 选手源码超过
judge.source_size_limit_kb(默认 50 KB)→ 判 CE(Source file too large (limit 50 KB));可执行文件提交与answers_only目录提交跳过该检查
clijudge submit rejudge <提交编号>受 judge.max_rejudge_times(默认 12)限制,源文件必须仍存在。另有自动重评测:边界 TLE 按 rejudge_times(默认 1)自动复跑。
返回 Home