轻量评测系统 LemonLime 的安装与使用
DingChenYang_12 · · 科技·工程
介绍
CSP 比赛成绩公布与评级规则公布往往有几天时间(如 CSP2025 在11月6日公布成绩,在11月14日公布评级规则),在这段空窗期里,各省将会公开选手代码,测试点信息也会公开。
那么在这段时间里,我们可以把所有人的代码在本地跑一遍,得出每个人的大致分数,从而预估自己的排名与本省分数线。
那么 LemonLime 就派上用场了,LemonLime是一个轻量评测系统,可以批量评测代码,最后还能生成统计信息,并且支持多线程,所以速度较快。
::::warning{open} 由于性能差异,评测结果可能与 CCF 官方发布的成绩与分数线有不同程度上的差异,LemonLime 的评测结果仅作为个人参考,不应当作为绝对权威的比赛结果。所造成的一切不良影响自行承担,作者不负任何责任。 ::::
准备工作
下载测试点信息与所在省份选手代码
测试点信息在 NOI 官网上有,如 CSP2023(在 “第二轮认证成绩查询及测试数据” 一栏)。
所在省份选手代码一般会在 报名系统 中公布(需登录),如果没有可以尝试向教练要。
安装 LemonLime
可以在 Github仓库 中下载,选择标有 Latest 的最新版本,下载适用于你的操作系统的安装文件。以下为举例。
Windows
选择 lemon-win-qt6-x64-Release.zip,下载后解压,安装完成。
再运行安装目录下的 vc_redist.x64.exe(Visual C++ 运行库),如果出现 “修改安装程序” 六个字,就表示这台电脑之前安装过运行库,退出就行,否则安装运行库。
NOI Linux 2.0
由于依赖问题有时无法提供预编译的 deb 包,所以建议下载 LemonLime-linux-qt6-x86_64-Release 。运行前需先安装依赖,终端运行 sudo apt install libxcb-cursor0 命令,如果出现错误就按终端提示来做。首次打开文件需要添加执行权限,在终端中运行 chmod +x LemonLime-linux-qt6-x86_64-Release 命令(需要先进入对应目录),之后每次打开文件需运行 ./LemonLime-linux-qt6-x86_64-Release 命令。如果嫌麻烦也可以在添加执行权限后将文件移动至系统的 ~/bin 文件夹,并将文件改为任何你喜欢的名字,(比如我改为 lemon 就运行 mv LemonLime-linux-qt6-x86_64-Release lemon 命令),之后每次运行直接输入之前更改的文件名就可以了(比如我要输入 lemon),而且不受所在目录限制。
配置比赛
首次进入需要配置编译器,选择 ”g++” 即可,如果没有编译器,你可能需要安装MinGW并配置环境变量。
进入 “欢迎” 页面后,点击 “新建”,填写标题、文件名与目录,点击 “OK”。LemonLime 会在目录下创建一个用于存储比赛信息的 .cdf 文件与两个名为 data 和 source 的文件夹。
找到比赛目录,把选手代码放入 source 文件夹,将测试点信息放入 data 文件夹。
::::info[选手代码格式]{open}
source
├─HB-J00001
│ ├─T1.cpp
│ ├─T2.cpp
│ ├─T3.cpp
│ └─T4.cpp
├─HB-J00002
│ ├─T1.cpp
│ ├─T2.cpp
│ ├─T3.cpp
│ └─T4.cpp
···
:::: ::::info[测试点信息格式]{open}
data
├─T1
│ ├─T1_1.in
│ ├─T1_1.ans
│ ├─T1_2.in
│ ├─T1_2.ans
│ └─···
├─T2
│ ├─T2_1.in
│ ├─T2_1.ans
│ ├─T2_2.in
│ ├─T2_2.ans
│ └─···
···
::::
然后点击 LemonLime 窗口左边的 “试题” 选项卡,选择左上角的 “控制”,点击 “自动添加试题”,4道题就会出现在 “试题” 页面,但是注意:试题顺序可能是乱的,你可以右键删除乱序试题,重新添加试题,重复操作直到顺序正确。
随后选择 “选手” 选项卡,点击右下角的 “刷新” ,先前导入的选手文件就会出现在选项卡中。
在开始评测前,建议点击左上角 “工具>设置” 进入设置页面,将 “最大评测线程数” 改为适合自己电脑 CPU 的大小,具体如何调整在评测阶段会说明。还可以进入 “视觉” 选项卡,自定义不同分数下 “选手” 选项卡中的颜色,我个人偏向 “仿 joi2020”。
开始评测
点击 “选手” 选项卡右下角的 “测试全部”,就会弹出一个评测窗口。
建议先观察1分钟左右,如果 LemonLime 没有出现崩溃的情况,就可以暂停评测,将 “最大评测线程数” 适当增大,再点击 “测试未测试”,重复测试直到找到适合电脑 CPU 的 “最大评测线程数”。
然后就可以等待评测完毕,一般会是 1~4小时,与电脑性能、 “最大评测线程数” 、测试点数量与选手数量有关。在评测过程中,可能出现大规模 “编译错误”,如果认为是出现了问题,可以在评测完毕后选择 “控制>测试编译问题或测试无源文件”,LemonLime 将会重新评测符合条件的所有代码。
Windows 系统在评测过程中,你可能会注意到 C 盘被快速占用,可以在评测完毕后进入 C:\Users\[用户名]\AppData\Local\Temp (或者 Win 键 + R 输入 %temp% 然后回车),把与评测时间差不多的文件删除(一般是 .s 和 .o文件以及以 “Lemonlime-随机字符串” 命名的文件夹),评测完毕后可以删除。
比赛统计
评测完毕后进入 “统计” 选项卡,在这里可以看到各种统计信息(其中前缀和为该分数以下有多少人,后缀和为该分数以上有多少人),再根据 CSP 20% 左右的一等率得出大致一等分数线。
比如我用我的电脑评测出的 CSP-J2023 的 HB 分数线为 115 分,官方分数线为 120 分,其中官方公布 120 分以上有 192 人,而我的评测结果为 120 分以上 193 人,误差仅 1 人!
| ::::info[配置] | 配置项 | 参数 |
|---|---|---|
| 处理器型号 | Intel(R) Core(TM) Ultra 7 155H (3.80 GHz) | |
| RAM | 32.0GB | |
| 系统 | Windows 11 | |
| 最大评测线程数 | 7 |
::::
同时,也可以点击 “控制>导出成绩或导出统计信息” 来生成成绩和统计信息的 HTML 或 csv 文件,建议使用 HTML,因为可以显示颜色。
HTML 文件效果展示:
其他功能
LemonLime 还支持各种其他功能,如编译器参数自定义、SPJ 评测,需要的读者可以阅读下一栏 “参考资料” 中的 LemonLime 在线用户手册。
参考资料
- LemonLime Github 仓库。
- LemonLime 在线用户手册(有任何问题也可以看这个手册)。
- B站视频教程。 ::::info[AI 使用说明] 本文在写作完成后使用 DeepSeek 纠正了部分排版错误。 ::::