预估你的比赛排名 | 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
error while loading shared libraries: libxcb-cursor.so.0: cannot open shared object file: No such file or directory

需要执行以下命令安装必要的库:

1
2
3
sudo apt update
sudo apt upgrade -y
sudo apt install libxcb-cursor0

安装完成后即可正常打开。

如果嫌每次都要先进入对应目录再运行程序太麻烦,也可以在添加执行权限后将文件移动至系统的 bin 文件夹,并将文件改为任何你喜欢的名字,(比如我改为 lemon 就运行 mv LemonLime-linux-qt6-x86_64-Release lemon 命令),之后每次运行直接输入之前更改的文件名就可以了(比如我要输入 lemon),而且不受所在目录限制。

配置比赛

杂项

首次进入需要配置编译器,选择 ”g++” 即可,如果没有编译器,你可能需要安装MinGW并配置环境变量

进入 “欢迎” 页面后,点击 “新建”,填写标题、文件名与目录,点击 “OK”。LemonLime 会在目录下创建一个用于存储比赛信息的 .cdf 文件与两个名为 datasource 的文件夹。

点击左上角 “工具>设置” 进入设置页面,将 “最大评测线程数” 改为适合自己电脑 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 窗口左边的 “试题” 选项卡,选择左上角的 “控制”,点击 “自动添加试题”,44 道题就会出现在 “试题” 页面,但是注意:试题顺序可能是乱的,你可以右键删除乱序试题,重新添加试题,重复操作直到顺序正确。最后,勾选每道试题的 “详情” 页面中的 “在子文件夹中寻找”,否则评测时会找不到选手文件。

选手

找到比赛目录,把选手代码放入 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 中评测,优点如下:

  1. 在 Linux 下,代码的运行会在沙箱下进行。而在其余平台则不会。鉴于 NOIP 曾出现过恶意代码,因此不建议在不清楚代码是否安全时在非 Linux 平台下评测
  2. CCF 官方评测就会在 NOI Linux 2.0 下进行,使用 NOI Linux 2.0 评测能最大程度减小分数误差(如代码中出现未定义行为)。
  3. NOI Linux 2.0 相比 Windows 评测更加稳定。

点击 “选手” 选项卡右下角的 “测试全部”,就会弹出一个评测窗口。

评测窗口

建议先观察1分钟左右,如果 LemonLime 没有出现崩溃的情况,就可以暂停评测,将 “最大评测线程数” 适当增大,再点击 “测试未测试”,重复测试直到找到适合电脑 CPU 的 “最大评测线程数”。

然后就可以等待评测完毕,一般会是 1 ~ 4小时,与电脑性能、 “最大评测线程数” 、测试点数量与选手数量有关(当然还与代码暴力程度有关)。在评测过程中,可能出现大规模 “编译错误”,如果认为是出现了问题,可以在评测完毕后选择 “控制>测试编译问题或测试无源文件”,LemonLime 将会重新评测符合条件的所有代码。

在评测过程中,你可能会注意到磁盘被快速占用,可以在评测完毕后进入临时目录 (Windows 下为C:\Users\[用户名]\AppData\Local\Temp,Linux 下为 /tmp) ,把与评测时间差不多的文件删除(一般是以 “LemonLime-随机字符串” 命名的文件夹)(Linux 会在重启时自动删除)。

比赛统计

评测完毕后进入 “统计” 选项卡,在这里可以看到各种统计信息(其中前缀和为该分数及以下有多少人,后缀和为该分数及以上有多少人),再根据 CSP-J/S 20%20\% 左右的一等率得出大致一等分数线。

比如我用我的电脑评测了 CSP-J2025 的 HB 省代码,配置与误差如下(“真实值” 一栏来源于 OIerDb):

配置:

配置项 参数
系统 NOI Linux 2.0(虚拟机)
处理器型号 Intel® Core™ Ultra 7 155H (3.80 GHz)
RAM 16.0GB
最大评测线程数 7

误差:

项目 真实值 评测值 误差比
随机抽样区间人数(250250 pts) 1717 1818 0%0 \%
随机抽样区间人数(175175 pts) 55 55 0%0 \%
随机抽样区间人数(225225 pts) 1717 1616 5.88%5.88\%
一等分数线(按 20%20\% 计算) 235235 pts 225225 pts 4.44%4.44\%
一等人数(按 20%20\% 计算) 201201 pts 225225 pts 10.67%10.67\%

CSP-J 2025 HB 一共 11441144 人参赛,官方给出的一等人数为 201201 人,实际一等率为 17.5%17.5\%,低于 20%20\%。此处误差可能是因此造成。

可以点击 “控制>导出成绩或导出统计信息” 来生成成绩和统计信息的 HTML 或 csv 文件,建议使用 HTML,因为可以展示完整信息,包括颜色。

HTML 文件效果展示:
HTML 文件效果展示

其他功能

LemonLime 还支持各种其他功能,如编译器参数自定义、SPJ 评测,需要的读者可以阅读下一栏 “参考资料” 中的 LemonLime 在线用户手册。

参考资料


预估你的比赛排名 | LemonLime 的安装与使用
https://sigmadcy.github.io/2026/04/26/UnofficialLemonLimeGuide/
作者
SigmaDCY
发布于
2026年4月26日
许可协议