NOI Linux 2.0 中的 Arbiter 的使用

NOI Linux 2.0 中有一个用于评测的工具 Arbiter。

感觉挺垃圾的。

启动

推荐在命令行中启动,这样闪退的时候可以看到错误信息。人机行为,有问题不报告,直接闪退是什么鬼?

对于正式测评,在题目准备时需要让所有题目空间限制一致。测评时将命令中的 unlimited 换为题目空间限制的千字节数(KiB),如:题目空间限制为 512 MiB,则命令为 ulimit -s $((512 * 1024))。导致这一问题的主要原因是直接启动 Arbiter,其父进程为 GNOME,子进程继承了父进程的栈空间限制。

摘自 OI-Wiki

命令行中输入 arbiter_local,或者输入一半,按 tab 自动补全。

创建

点击 New 按钮,创建一个文件,路径最好不要包含中文或是空格,否则可能会有未知错误。记住这个路径。

在试题列表中右键单击,点击添加考试,再右键点击“第一场–Day1”,点击添加试题。

点击出现的试题就可以进行配置,记得选择比较方式。

打开刚刚创建时输入的路径,里面有若干个文件夹。evaldata 是放测试数据的,players 是放选手程序的,result 是评测完之后自动生成的结果,filter 是校验器目录,里面是用于比较答案的程序。

点开 evaldata,把数据放到里面,不要 建立子文件夹!命名遵循:<文件名><id>.in,<文件名><id>.ans。注意后缀必须是 ans,必须和配置的试题名称一致。

如果后缀是 out,或者文件名不一样,可以选中全部文件,按 F2,会出现一个高级重命名工具,可以用于便捷地进行重命名。

打开 players,先建立一个文件夹 day1,在这个文件夹里面,建立选手的文件夹,选手文件夹中需要建立题目的子文件夹。注意是先建立 day1 文件夹。

然后打开试题评测,点击添加选手,名字和编号跟文件夹一样就行,不用搞那么麻烦。

左上角改成评测第 1 场,点击全选,然后点击评测选定选手。

结果

打开 result 文件夹,里面会显示每一个测试点的信息。

BUG

好多 BUG 呀这程序。

写文章时,发现 filter 文件夹是空的,导致没法使用校验器。仔细观察控制台输出,发现好像复制失败了,此时要去 /usr/local/arbiter/local/filter 路径下手动将校验器复制过来。

哎,无语了。

其它 BUG 只能看控制台输出了个啥,还有比赛配置文件及时保存,不然一闪退就要重新配置了,挺烦人的。

后缀自动机
SYSU Collegiate Programming Contest 2024 (SYSUCPC 2024), Final