NOI linux下Arbiter评测软件的使用

安装NOI linux

我这边用的是虚拟机,不过考虑到 arbiter 比较卡,所以也可以考虑直接装成系统来提高评测速度。

首先从官网上下载 NOI linux 的 镜像文件

然后就直接安装系统,它的系统是 Ubuntu 14,所以直接按照 Ubuntu 的分区方式来就好。

装好之后用默认的密码 123456 就可以登录了。

Arbiter 的使用

进入系统之后点击左上角可以从 编程 中找到 Arbiter,如图:

avatar

新建比赛

首先先打开 nautilus ,在一个你喜欢的地方新建文件夹。比如说这里我在桌面新建了一个叫noip contest的文件夹:

avatar

然后在 Arbiter 中选择新建比赛,找到这个文件夹/home/noilinux/Desktop/noip contest,点击确定。

avatar

建好比赛之后可以新建考试,在考试中能够添加题目。

添加数据

Arbiter 中数据的格式是以 xx.inxx.ans 的形式命名的。例如一个名叫 “example” 的题目,一共10个数据点,那么你就需要准备 example1.in ~ example10.inexample1.ans ~ example10.ans 这些文件。

所有的数据都应该放到 evaldata 文件夹中,不需要新建子文件夹。

avatar

选手代码

你可以手动添加选手,也可以通过csv导入。

在添加完选手之后,你需要把选手的代码都放到对应编号的文件夹下,再全部放入 players 文件夹中。
文件夹结构如下

| players
|- 编号
|   |- 试题文件夹
|       |- 源文件

如图:

avatar

测试

完成上面的步骤之后就可以开始测试了。

测试之后评测细节可以在 result 文件夹中查看

补充

官方发的选手源代码是放在试题文件夹下的,用lemon测不方便,可以写个py来快速地把源代码移出来:

import os, shutil

for dirname, subdirs, files in os.walk('.'):
	s=str(dirname)
	if (s=="."): continue
	for subdir in subdirs:
		for subdirname, subdirs, files in os.walk(os.path.join(dirname,subdir)):
			for file in files:
				shutil.move(os.path.join(subdirname, file), s)

todo

回cq之后补一点截图

posted @   naiij  阅读(3393)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示