LemonLime 食用指北
(~~~~) 大概是今天有点脑子发抽并且问的人有点多并且补题压力还不算太大所以想起来写份指北。
(~~~~) 其实本质是高频问题合集。
(~~~~) LemonLime下载链接
(~~~~) 如果是Lemon上的问题我就只能建议你升级到LemonLime
(~~~~) 实际上LemonLime的帮助内有一份PDF的指南,只是部分内容写得比较模糊而已。如果有本文章没提到的问题请先查阅那份指南。
一、我怎么添加比赛
(~~~~) 如果是新建比赛,则在新建处给比赛选好存放位置及名字,并将每道题的数据文件夹放在 data 文件夹下,选手程序所在的文件夹放在 source 文件夹下。
(~~~~) 如果是已有的比赛,则在 打开比赛 内找到那场比赛的 .cdf 文件。
二、我怎么添加题目/为什么打开比赛没有题目
(~~~~) 在那场比赛的界面内选择上方工具栏 控制 → 自动添加试题 并为每道题设置时间和空间限制。
三、我怎么开 O2/无限栈/C++11
(~~~~) 在上方工具栏选择 工具 → 设置 → 编译器 → 高级选项 → 编译器参数 处填入你需要的编译命令,常见的有:
(~~~~) -O2 开启O2优化 -Wl,--stack=1000000000 开启无限栈 -std=c++11 开启C++11
四、我怎么修改题目时间限制/空间限制/绑点
(~~~~) 在 试题 部分右键想要修改的题,选择 增强测试点调整器
(~~~~) 如果你想修改测试点的时空限制,则选中欲修改的测试点,点击右侧 修改选中 后修改限制即可。
(~~~~) 如果你想绑点,则选中将设置为同一个子任务的测试点,点击右侧 合并,此时只有通过该子任务内所有测试点才能得到该子任务的得分。
五、我怎么配置SPJ
(~~~~) 首先,LemonLime的SPJ是基于其特有的 testlib.h 库(下载链接)。
(~~~~) 如果想编写SPJ,你可以认为你只需要按照普通的 testlib 下的 SPJ 编写,之后将初始化语句改为 registerLemonChecker() 并使用配套的 testlib 即可。
(~~~~) 之后在Windows系统下,编译SPJ(需要在C++11下)生成 exe 文件并放在对应题目Data文件夹内,之后在对应试题处选择 比较模式 → 自定义校验器模式 ,然后填入 文件夹名称*.exe ,其中 * 指代SPJ可执行文件的名称。
(~~~~) 在Linux系统下则在填入SPJ时填入 文件夹名称* 即可,* 含义同上。
(~~~~) 以下是一个在Windows系统下的例子

六、已知bug
(~~~~) 如果你在增强测试点调整器修改过测试点绑点情况过后或者加入了SPJ后双击在之前测试的记录会导致LemonLime闪退.