为了 OI 比赛而生的基于 Lemon + LemonPlus 的轻量评测系统
A tiny judging environment for OI contest based on Lemon + LemonPlus
已在这些系统测试:
系统名称 | 版本号 | 位数 | DE / WM |
---|---|---|---|
Windows | 7 | 32, 64 | Untitled |
Windows | 10 | 64 | Untitled |
Manjaro | 20.0 | 64 | KDE-Xorg; i3WM |
Arch | 2020-3-20 | 64 | KDE-Xorg; KDE-Wayland |
Ubuntu | 20.04 | 64 | GNOME 3 |
Ubuntu | 18.04.4 | 64 | GNOME 3 |
NOI Linux (Ubuntu) * | 14.04 | 32 | GNOME 2 |
Linux Mint | 19.3 | 64 | Cinnamon |
Deepin | 15.11 | 64 | DDE |
Debian | 10.3.0 | 64 | LXQt; KDE-Xorg |
Fedora | 31-1.9 | 64 | XFCE |
openSUSE | Leap 15.1 | 64 | iceWM |
Lemon 绿了!
- 题目类型支持:传统题,提交答案题,交互题(仅 C++),通信题。
- 统计:对比赛分数数据进行分析的栏目,还需要很多的更新。
- 整理文件:使所有的选手的子文件夹内外都有答案文件,并且删除大部分无用文件。支持在这之前备份文件。
- 选手名单上的成绩将会有背景颜色,随着分数变化而变化。导出的 HTML 文件也有颜色,配色方案大体来自 IOI,不过你也可以自定义。
- 支持重新排列题目顺序
- 窗口下方新增提示栏
- 移除了自定义测试
- 移除了多线程评测
- 任意选手的任意题目评测
- 可以控制的最大重新评测次数
- Subtask Skip
- 子任务依赖
- 支持选择子文件夹还是非子文件夹
- 各种评测结果在评测时界面、结果查看界面和 HTML 有了易于区分的不同的颜色。
- 默认的栈空间设置为和内存限制相同。
- 支持高 DPI
- 自带的实数比较模式判断了
nan
和inf
。来自某出题人的提醒 - 如果你在某个点得分了,那么在测试时的窗口会显示获得的分数、使用的时间和空间。
- 一键评测所有出现 找不到文件/编译问题 的记录
- 手动保存比赛、打开比赛目录(在
文件
菜单栏中) - 重命名比赛
- 自动添加试题的时候每个点的分数不再是下取整(总分/数据点个数)。
- 减小了导出 HTM 的体积,并且给 HTML 添加了更多跳转。
- 默认空间限制和比较模式调整
- 图标和启动横幅
- 更友好的界面
git clone
的时候,使用 --depth 1
可以使下载下来的文件大小减少很多(因为默认情况下它会把所有历史记录全部下载下来)。
你也许可以到 码云(Gitee)
去下载。
在很多地区,从 码云
下载的速度是从 Github
下载的速度的 100 倍。
去 Releases
下载就可以了。
当然如果你装有 Qt 5,也可以下载源码编译。
由于 Windows 的特殊性,请在下载 Releases
后检查 LemonLime 的功能的完整性,比如是否能探测程序的运行时间和使用内存。不过如果使用源码构建 LemonLime 的话将不会出现这种问题,所以仍然推荐使用源码构建 LemonLime。
在很多地方,下载 Qt 的时间 + 安装 Qt 的时间 + 下载 LemonLime 源代码的时间 + 编译的时间 < 从 Github 上下载可执行文件的时间。
下载 Qt 请考虑一个快速的国内镜像。
已在这些系统测试:
系统名称 | 版本号 | 位数 | DE / WM |
---|---|---|---|
Arch | 2020-3-20 | 64 | KDE-Xorg; KDE-Wayland |
Manjaro | 20.0 | 64 | KDE-Xorg; i3WM |
## 迅速安装 ##
yay -S lemon-lime # 版本可能过旧
yay -S lemon-lime-git
# 感谢 @ayalhw 的支持。
## 使用 qmake ##
sudo pacman -S gcc make qt5-base # 依赖环境
cd 源代码的目录
g++ watcher_unix.cpp -o watcher_unix -O2
qmake lemon.pro
make # 获得可执行文件 lemon
## 使用 QtCreator ##
sudo pacman -S qtcreator
已在这些系统测试:
系统名称 | 版本号 | 位数 | DE / WM |
---|---|---|---|
Ubuntu | 20.04 | 64 | GNOME 3 |
Ubuntu | 18.04.4 | 64 | GNOME 3 |
Linux Mint | 19.3 | 64 | Cinnamon |
Deepin | 15.11 | 64 | DDE |
Debian | 10.3.0 | 64 | LXQt; KDE-Xorg |
## 使用 qmake ##
sudo apt install qt5-default build-essential # 依赖环境
cd 源代码的目录
g++ watcher_unix.cpp -o watcher_unix -O2
qmake lemon.pro
make # 获得可执行文件 lemon
## 使用 QtCreator ##
sudo apt install qtcreator
已在这些系统测试:
系统名称 | 版本号 | 位数 | DE / WM |
---|---|---|---|
NOI Linux (Ubuntu) * | 14.04 | 32 | GNOME 2 |
NOI Linux 是 Ubuntu 14.04 的换皮,所以用 apt 安装的 Qt 版本只能到 5.2。
在 qmake 前你需要:
- 删除
lemon.ui
里面的<property name="tabBarAutoHide">...
开始的 3 行。因为 Qt 5.2 里面还没有这个特性! - 删除
lemon.pro
的unix:QMAKE_LFLAGS += -no-pie
那一行。 - 把代码中所有
asprintf
换成sprintf
。
或者
- 在 Qt 官网上找一个更高版本(比如 5.9)的 Qt 安装。
arbiter 退出了群聊。
已在这些系统测试:
系统名称 | 版本号 | 位数 | DE / WM |
---|---|---|---|
Fedora | 31-1.9 | 64 | XFCE |
## 使用 qmake ##
sudo yum install g++ make qt5 # 依赖环境
cd 源代码的目录
g++ watcher_unix.cpp -o watcher_unix -O2
qmake-qt5 lemon.pro
make # 获得可执行文件 lemon
已在这些系统测试:
系统名称 | 版本号 | 位数 | DE / WM |
---|---|---|---|
openSUSE | Leap 15.1 | 64 | iceWM |
## 使用 QtCreator ##
sudo zypper install --type pattern devel_basis
sudo zypper install libqt5-creator
在没有 macOS 机子的情况下写 macOS 支持是一件非常滑稽的事。
请使用 watcher_macos.cpp
编译 watcher_unix
,否则内存限制会出问题。
clang++ watcher_macos.cpp -o watcher_unix -O2
qmake lemon.pro
make