本文采用的是 LemonLime,lemon.0.3.2.1。
lemon 介绍
优势:
lemon 是一款离线进行 OI 赛制选手代码评测的软件。
相较于 OJ,可以为 OI 培训机构/学校教练提供更加真实的 OI 赛制比赛环境。
可以实现让选手完全地断网写代码,并且快速地测评选手的代码,得出选手各题的得分。
劣势:
诸如 lemon 的本地评测工具一个极大的缺陷是“需要本地测试数据”。所以除非是数据公开的赛题,否则就需要自己造数据甚至自己出题。
感觉不适合小型机构/弱校使用。
应该更适合校内集训互测或者教培模拟赛使用。
lemon 使用
打开 lemon 界面如下图:
选择新建比赛:
点击 OK。
在目标目录下会生成 test 文件夹。
并且其目录下拥有三个子文件
- data 文件夹(用于存储题目测试数据)
- source 文件夹(用于存储选手代码)
- test.cdf 比赛文件(用于在“添加”比赛功能,“添加比赛”添加的就是这个文件)
添加题目:
在 data 文件下第一个子目录新建题目文件夹,用题目名称作为文件名。
在题目文件夹子目录下存放测试点,用 .in/.out 文件按序号一一对应存放。
返回 lemon,选择控制,自动添加试题。
lemon 会自动识别对应目录的题目。
可以设置试题分值、时间限制、空间限制。
点击 OK 进入题目配置界面:
一般不需要进行调整。
- 源程序名称不要带扩展名。
- 若勾选“在子文件夹中寻找”,选手目录需要为每个题单独建一个以源文件命名的文件夹。将源程序放在文件夹内;否则只需要将源程序放在选手目录下即可。
- 采用文件读写不用勾选定向到标准输入/输出。
添加选手:
以勾选“在子文件中寻找”为例。
在 sources 子目录下新建以“选手名”命名的文件夹:
在“选手名”文件夹目录下新建以“源程序名”命名的文件夹:
在“源程序名”命名的文件夹下放入源程序文件。
以 A+B 为例,源程序示例如下:
选手代码要求采用 freopen 进行文件输入输出。
评测题目:
返回 lemon,选择“选手”进入“选手”页面:
点击刷新,lemon 会自动添加选手。
点击测试全部,进行测试:
注意:
测试题目时,可能需要关闭本地杀毒软件。否则可能会出现各种超时错误(编译超时,运行超时)。
笔者猜测大概是 lemon 需要访问以管理员权限才能访问的 Windows 文件,开了杀毒软件会进行拦截。
后续添加选手时,进行刷新即可。
其它:
若对其它设置有需求,可以在设置中自行更改:
还可以在“帮助”,“指南”,“用户手册”中查看更多详细信息。