DOMJUDGE食用指南

导入名单

首先我想要说的就是这个名单的导入,这个算是最简单的了,基本不会有坑,不过考虑到有人可能觉得写脚本麻烦,我在下面贴一个脚本

脚本的具体内容根据年份更改,会生成accounts,teams,和groups三个文件之后在domjudge的importexport选项这里进入,导入就行了

题目导入

题目的导入算不得麻烦,就是会有一点小坑,主要还是打包格式的问题 这里是spj的打包格式

text
.
├── data
│   ├── sample
│   └── secret
├── output_validators
│   └── validate
│       ├── checker.cpp
│       └── testlib.h
├── submissions
│   ├── accepted
├── domjudge-problem.ini
├── problem.pdf

这是普通题目的打包格式

text
.
├── data
│   ├── sample
│   └── secret
├── submissions
│   ├── accepted
├── domjudge-problem.ini
├── problem.pdf

建议pdf统一都用markdown导出,在出题之前写好一个markdown的模板,让他们在此模板进行修改,以防题目格式百花齐放(

最要注意的来了

如果你是git下来的文件夹,很有可能犯的一个错误就是压缩包的层级错误,DOMjudge 要求 domjudge-problem.ini 和 problem.yaml 必须位于压缩包的根目录

⚠️ 重要:DOMjudge 题目 ZIP 打包方式(错误会直接导致无法导入)

❌ 错误做法(常见,坑了我好久

对着整个题目文件夹点击右键 → 压缩

text
PROBLEM.zip
└── PROBLEM/
    ├── data/
    ├── submissions/
    ├── domjudge-problem.ini
    └── ...

错误后果:

  • DOMjudge 无法识别题目结构
  • 后台导入时会:
    • 直接失败
    • 或无报错但题目不显示
  • 表现为: “显示导入0个testcases”
  • 属于 最常见、最隐蔽、最浪费时间的错误之一

只要 ZIP 第一层是文件夹,DOMjudge 一定识别失败。


✅ 正确做法

进入 PROBLEM 文件夹内部 → 全选所有内容 → 右键 → 压缩为 ZIP

text
PROBLEM.zip
├── data/
├── submissions/
├── domjudge-problem.ini
└── ...

关键要求(缺一不可):

  • ZIP 第一层必须是文件
  • domjudge-problem.ini 必须在根目录
  • data/submissions/ 与 ini 文件 同级

压缩脚本

2024-12-12 14:19:30
scandi

照你这么说,打包文件未免也太麻烦了

scandi

有没有那种一口气全打包好的脚本

Wa撤回了一条消息
Wa

有的兄弟有的,在下面给你贴出来

滚榜(Resolver)

既然都办比赛了,那不滚榜是不完整的。 不滚榜的比赛,现场气氛直接少一半。

我们这边用的是 resolver 这一套滚榜工具,ICPC / DOMjudge 圈子里很常见,稳定、省心、效果也够用。

首先需要取得event-feed.json

这里看了别人的文档,大致知道我们的domjudge版本下是访问

域名/domjudge/api/v4/contests/{contest_id}/event-feed/?stream=false输入管理员账户的账号密码,获得event-feed再改后缀即可

接下来resolver文件夹里新建一个文件夹叫做CDP,把先前的event-feed.json放进去,之后点击award.bat进行一个初始化,初始化你想要设置的奖项,然后在当前文件夹打开powershel输入

bash
.\resolver.bat CDP

就可以运行了 可能存在的问题有:中文名字全部变成框框了,要解决这个问题的话,你得在 resolver.bat文件夹的开头加入两行代码 echo off为自带的,无需理会

bat
@echo off 
set "ICPC_FONT=Microsoft YaHei"
set "ICPC_FONT_NAME=Microsoft YaHei"

哦对了,如果这两个bat打不开,大概率是因为没有java环境,这里我就不赘述怎么配置环境了,自己上网搜索即可

后记

还有什么要说吗,让我想想,没有的话就先这样,还打算写一个计网和数据结构的复习笔记呢。 哦,记起来了,可能要讲讲用牛客验题的规范还有spj的写法。挖个坑改日再写吧

计网复习随记
Mongoose 里「变量名、模型名、集合名」到底有什么区别?

评论区

评论加载中...