预估你的比赛排名 | LemonLime 的安装与使用
介绍
CSP 比赛成绩公布与评级规则公布往往有几天时间(如 CSP2025 在11月6日公布成绩,在11月14日公布评级规则),在这段空窗期里,各省将会公开选手代码,测试点信息也会公开。
在这段时间里,我们可以把所有人的代码在本地跑一遍,得出每个人的大致分数,从而预估自己的排名与本省分数线。
那么 LemonLime 就派上用场了,LemonLime 是一个轻量评测系统,可以批量评测代码,最后还能生成统计信息,并且支持多线程评测,所以速度较快。
由于性能差异,评测结果可能与 CCF 官方发布的成绩与分数线有不同程度上的差异,LemonLime 的评测结果仅作为个人参考,不应当作为绝对权威的比赛结果。所造成的一切不良影响自行承担,作者不负任何责任。
下载测试点与代码
测试点信息在 NOI 官网的成绩和申诉通知上有,如 CSP 2025(在 “附 1”一栏)。
所在省份选手代码一般会在 报名系统 中公布(需登录),如果没有可以尝试向教练要。
安装 LemonLime
可以在 GitHub仓库 中下载,选择标有 Latest 的最新版本,下载适用于你的操作系统的安装文件。以下为举例。
Windows
选择 lemon-win-qt6-x64-Release.zip,下载后解压,安装完成,lemon.exe 就是程序。
如果无法打开就运行安装目录下的 vc_redist.x64.exe(Visual C++ 运行库)。
NOI Linux 2.0
由于依赖问题有时无法提供预编译的 deb 包,所以建议下载 LemonLime-linux-qt6-x86_64-Release 。首次打开文件需要添加执行权限,在终端中运行 chmod +x LemonLime-linux-qt6-x86_64-Release 命令(需要先进入对应目录),之后每次打开文件需运行 ./LemonLime-linux-qt6-x86_64-Release 命令。
如果运行时出现:
1 | |
需要执行以下命令安装必要的库:
1 | |
安装完成后即可正常打开。
如果嫌每次都要先进入对应目录再运行程序太麻烦,也可以在添加执行权限后将文件移动至系统的 bin 文件夹,并将文件改为任何你喜欢的名字,(比如我改为 lemon 就运行 mv LemonLime-linux-qt6-x86_64-Release lemon 命令),之后每次运行直接输入之前更改的文件名就可以了(比如我要输入 lemon),而且不受所在目录限制。
配置比赛
杂项
首次进入需要配置编译器,选择 ”g++” 即可,如果没有编译器,你可能需要安装MinGW并配置环境变量。
进入 “欢迎” 页面后,点击 “新建”,填写标题、文件名与目录,点击 “OK”。LemonLime 会在目录下创建一个用于存储比赛信息的 .cdf 文件与两个名为 data 和 source 的文件夹。
点击左上角 “工具>设置” 进入设置页面,将 “最大评测线程数” 改为适合自己电脑 CPU 的大小,具体如何调整在评测阶段会说明。还可以进入 “视觉” 选项卡,自定义不同分数下 “选手” 选项卡中的颜色,我个人偏向 “仿 joi2020”。
试题
找到比赛目录,把测试点信息放入 data 文件夹。
data文件夹结构:
1
2
3
4
5
6
7
8
9
10
11
12
13├─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 窗口左边的 “试题” 选项卡,选择左上角的 “控制”,点击 “自动添加试题”, 道题就会出现在 “试题” 页面,但是注意:试题顺序可能是乱的,你可以右键删除乱序试题,重新添加试题,重复操作直到顺序正确。最后,勾选每道试题的 “详情” 页面中的 “在子文件夹中寻找”,否则评测时会找不到选手文件。
选手
找到比赛目录,把选手代码放入 source 文件夹。
source文件夹结构:
1
2
3
4
5
6
7
8
9
10
11├─HB-J00001
│ ├─T1.cpp
│ ├─T2.cpp
│ ├─T3.cpp
│ └─T4.cpp
├─HB-J00002
│ ├─T1.cpp
│ ├─T2.cpp
│ ├─T3.cpp
│ └─T4.cpp
···
选择 “选手” 选项卡,点击右下角的 “刷新” ,先前导入的选手文件就会出现在选项卡中。
开始评测
建议在 NOI Linux 2.0 中评测,优点如下:
- 在 Linux 下,代码的运行会在沙箱下进行。而在其余平台则不会。鉴于 NOIP 曾出现过恶意代码,因此不建议在不清楚代码是否安全时在非 Linux 平台下评测。
- CCF 官方评测就会在 NOI Linux 2.0 下进行,使用 NOI Linux 2.0 评测能最大程度减小分数误差(如代码中出现未定义行为)。
- NOI Linux 2.0 相比 Windows 评测更加稳定。
点击 “选手” 选项卡右下角的 “测试全部”,就会弹出一个评测窗口。

建议先观察1分钟左右,如果 LemonLime 没有出现崩溃的情况,就可以暂停评测,将 “最大评测线程数” 适当增大,再点击 “测试未测试”,重复测试直到找到适合电脑 CPU 的 “最大评测线程数”。
然后就可以等待评测完毕,一般会是 1 ~ 4小时,与电脑性能、 “最大评测线程数” 、测试点数量与选手数量有关(当然还与代码暴力程度有关)。在评测过程中,可能出现大规模 “编译错误”,如果认为是出现了问题,可以在评测完毕后选择 “控制>测试编译问题或测试无源文件”,LemonLime 将会重新评测符合条件的所有代码。
在评测过程中,你可能会注意到磁盘被快速占用,可以在评测完毕后进入临时目录 (Windows 下为C:\Users\[用户名]\AppData\Local\Temp,Linux 下为 /tmp) ,把与评测时间差不多的文件删除(一般是以 “LemonLime-随机字符串” 命名的文件夹)(Linux 会在重启时自动删除)。
比赛统计
评测完毕后进入 “统计” 选项卡,在这里可以看到各种统计信息(其中前缀和为该分数及以下有多少人,后缀和为该分数及以上有多少人),再根据 CSP-J/S 左右的一等率得出大致一等分数线。
比如我用我的电脑评测了 CSP-J2025 的 HB 省代码,配置与误差如下(“真实值” 一栏来源于 OIerDb):
配置:
配置项 参数 系统 NOI Linux 2.0(虚拟机) 处理器型号 Intel® Core™ Ultra 7 155H (3.80 GHz) RAM 16.0GB 最大评测线程数 7 误差:
项目 真实值 评测值 误差比 随机抽样区间人数( pts) 人 人 随机抽样区间人数( pts) 人 人 随机抽样区间人数( pts) 人 人 一等分数线(按 计算) pts pts 一等人数(按 计算) pts pts CSP-J 2025 HB 一共 人参赛,官方给出的一等人数为 人,实际一等率为 ,低于 。此处误差可能是因此造成。
可以点击 “控制>导出成绩或导出统计信息” 来生成成绩和统计信息的 HTML 或 csv 文件,建议使用 HTML,因为可以展示完整信息,包括颜色。
HTML 文件效果展示:

其他功能
LemonLime 还支持各种其他功能,如编译器参数自定义、SPJ 评测,需要的读者可以阅读下一栏 “参考资料” 中的 LemonLime 在线用户手册。
参考资料
- LemonLime GitHub 仓库。
- LemonLime 在线用户手册(有任何问题也可以看这个手册)。
- B站视频教程。