讲述清楚,简单易懂的Arbiter使用手册

转载自 https://www.cnblogs.com/gengchen/p/7761565.html

Arbiter 系统使用说明

Overview

  • Arbiter是NOI系列赛事的官方评测软件, 由北航的相关人员开发。
  • 在OIer会经历的几场大型比赛中, 除了省选和PKUSC/THUSC不使用Arbiter评测, 其他比赛(如CTSC, WC, NOI, NOIP)全部使用Arbiter进行官方评测, 最终成绩也以Arbiter评测结果为准。
  • 网络上一直没有清晰的Arbiter使用说明....所以提供一份。

Install

  • Arbiter内置在了NOI Linux发行版中, 可以自行前往NOI官网下载。
  • 其他下载方式尚不明确。

Usage

  • 首先新建一场比赛, 选择一个已经创建的文件夹作为比赛文件夹, Arbiter会自行在该目录下创建几个子文件夹.
  • 几个子文件夹的功能如下:
    • evaldata: 数据文件夹,所有题目的数据直接放在这一个文件夹中, 不建单独的子文件夹, 每个文件的格式形如:test1.in, test1.ans, 注意这里的答案文件必须用.ans作为后缀.
    • 如果你的题目的原始数据是以.out作为后缀名, 你可以使用附件一中的Python批量修改。
    • players:选手源代码文件夹, 首先建立一个日期文件夹, 如day1(注: 若已经在arbiter中新建了一天的比赛, 那么这个文件夹会被自动创建), 然后把各个选手的源程序分别建立单独的文件夹放进day1文件夹。
    • 在每个选手的文件夹中, 选手需要对于每个题目创建子文件夹, 并把源程序放到子文件夹中.
    • result: 评测结果文件夹, 每个以选手名称作为名称的文件夹是评测结果文件, 不需要操作人员手动修改.
    • ps: 评测结果文件夹, 以.ps文件可视化呈现的选手测试点详细测试情况, 不需要操作人员手动修改, 在打印比赛结果按钮被操作后会自动创建.
  • 在配置完毕数据和选手源程序之后, 在考试页面建立一天的考试, 在下面再分别建立试题, 每个试题按照要求设置即可.
  • 在选手界面, 选择导入名单, 导入csv文件的选手名单, 或者直接手动建立选手. 选手的信息分为选手名称和选手编号, 其中选手编号必须和players中的文件夹名称相同.
  • 选择考试, 点击测评即可。
  • 注意这个软件设计的非常辣鸡, 测评的时候不要乱动鼠标, 不然会当机。

Appendix

#coding:utf-8
import os
def filerename(filepath,srctype,destype):
for path,dirlist,filelist in os.walk(filepath):
for file in filelist: #防止文件名中包含.
fullist = file.split('.')
namelist = fullist[0:-1]
filename = ''
for i in namelist:
filename = filename + i + '.'
# print (filename) curndir = os.getcwd() #获取当前路径
# print (curndir) os.chdir(path) #设置当前路径为目标目录
newdir = os.getcwd() #验证当前目录
# print (newdir) filetype = file.split('.')[-1] #获取目标文件格式 if filetype == srctype: #修改目标目录下指定后缀的文件(包含子目录)
os.rename(file,filename+destype) if srctype == '*': #修改目标目录下所有文件后缀(包含子目录)
os.rename(file,filename+destype) if srctype == 'null': #修改目标目录下所有无后缀文件(包含子目录)
if len(fullist) == 1:
os.rename(file,file+'.'+destype) os.chdir(curndir) #回到之前的路径 filerename('.','out','ans')
"执行python change.py即可

[附]转载自另一位大佬xjzsq

坑爹测评软件arbiter使用指南

by xjzsq

S1:在试题摘要的空白处单击右键点击添加考试

S2:在考试上单击右键点击添加试题

S3:修改试题名称为测试数据和代码的名称

S4:修改测试数据个数/分值

S5:修改时间限制和内存限制

S6:选择比较方式,看情况选择,因为比较方式已经被坑了N次了

(比较方式一般会在试题pdf第一页中的题目信息中给出,写在比较方式一栏中,

比如“全文比较”或者“SPJ”(貌似目前没法测SPJ))

S7:保存!!!

一定在文件-保存那里保存一下,不然所做的更改下次打开就会被还原,已经被坑了N次了...

S8:导入测试数据:将测试数据直接放到evaldata文件夹下

(文件名格式必须是试题名称+测试点编号.in和.ans,如果是.out的话,

可以用批处理改,在有.out的文件夹下建立一个文本文件,然后打开输入:

ren *.out *.ans ,就可以转换为.ans文件)

S9:导入选手:在试题评测中选择添加选手,然后输入姓名和编号,

这里为了方便都输入一样的即可。

S10:把选手的程序复制到player文件夹下,文件夹名为选手编号,

在选手文件夹下建立三个子文件夹,名称为题目名称,在这些文件夹中

放入对应程序,名称为 试题名称.c/cpp/pas

S11:评测:选择评测场数,然后在选手的名字前面打勾,之后点击“评测选定选手”

即可评测

S12:查看结果:

选择成绩统计,在试题评测中选好场数,然后点击“打印当日选手

成绩”,选择打印到文件即可打印,结果打印到ps文件夹下(分场分选手的子文件夹)

S13:测评完毕,保存工程

注:

1.如果闪退,则说明测试数据有问题(比如.out忘记转成.ans之类的)。

2.测评完以后,如果选手对应的成绩还是0的话,可以到成绩统计那一栏去看一下,有可能成绩统计那里能正确显示成绩

3.可以到result/day_/选手名/文件夹下查看评测过程的日志,可以在不用打印的情况下方便的看到评测过程。

4.如果评测失败可以到评测日志看一下,很有可能是编译错误(目前不要在编译选项里面填任何东西,不然会编译失败...)

5.最好在评测选手程序前先评测一下标程,确认比较方式是否适合,如果标程没有AC的话,请尝试选择其他比较方式(最好选择和答案对应的比较方式,比如如果输出一个数字,就选择单行单数字等等)

6.在修改比较方式之后,最好先保存,然后退出arbiter再重新打开比赛,然后在确认一下比较方式是否已经改变,因为arbiter比较坑的缘故,有时改变比较方式之后会没有效果,必须重新打开工程才能确认比较方式是否已经改变。

[转]NOI_Linux Arbiter使用手册的更多相关文章

  1. FREERTOS 手册阅读笔记

    郑重声明,版权所有! 转载需说明. FREERTOS堆栈大小的单位是word,不是byte. 根据处理器架构优化系统的任务优先级不能超过32,If the architecture optimized ...

  2. JS魔法堂:不完全国际化&本地化手册 之 理論篇

    前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...

  3. 转职成为TypeScript程序员的参考手册

    写在前面 作者并没有任何可以作为背书的履历来证明自己写作这份手册的分量. 其内容大都来自于TypeScript官方资料或者搜索引擎获得,期间掺杂少量作者的私见,并会标明. 大部分内容来自于http:/ ...

  4. Redis学习手册(目录)

    为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...

  5. JS魔法堂:不完全国际化&本地化手册 之 实战篇

    前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...

  6. Windows API 函数列表 附帮助手册

    所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之 ...

  7. linux命令在线手册

    下面几个网址有一些 Linux命令的在线手册,而且还是中文的,还可以搜索.非常方便 Linux命令手册 Linux命令大全 Linux中文man在线手册 每日一linux命令

  8. Mysql完全手册(笔记二,使用数据与性能优化)

    一.使用数据 1.使用变量 MySQL也可以让我们以用户自定义的变量来存储select查询的结果,以便在将来select查询中使用.它们只会在客户会话期间存在,但是它们提供一个方便有效的方法来连接查询 ...

  9. html javascript css3 php3.2.3离线手册

    各位新年快乐! 愿大家"愿有前程可奔赴,也有岁月可回头"! 发现个离线手册很全的网站,分享大家,也mark自用. http://www.shouce.ren/ 手册网

随机推荐

  1. python之文件读写和异常处理

    # 文件读取.写入和异常处理操作举例 # date:2017-07-17 file_name = "D:/file_demo.txt" with open(file_name, ' ...

  2. python---str和repr

    在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str() 或者 repr() . 区别与使用 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为 ...

  3. Hadoop源码分析之FileSystem抽象文件系统

    Hadopo提供了一个抽象的文件系统模型FileSystem,HDFS是其中的一个实现. FileSystem是Hadoop中所有文件系统的抽象父类,它定义了文件系统所具有的基本特征和基本操作. Fi ...

  4. Redis无法保存ef复杂对象

    最近项目需要使用redis. 然后我就满怀激情开始处理数据层了.在原来查询数据的基础上,有封装了一个redis缓存层. 结果在redis保存ef对象的时候,发现了一个非常尴尬的问题. model: p ...

  5. Android Service服务的生命周期

    与activity类似,服务也存在生命周期回调方法,你可以实现这些方法来监控服务的状态变化,并在适当的时机执行一些操作. 以下代码提纲展示了服务的每个生命周期回调方法: public class Ex ...

  6. emWin 之 WM_SetCallback 创建回调函数

    @2018-7-11 [小记] emWin 通过函数 WM_SetCallback ( )  自定义回调函数 > 下段代码就是通过 MESSAGEBOX 控件的 OK 按键实现删除信息框的对话框 ...

  7. 洛谷 P1462 通往奥格瑞玛的道路 解题报告

    P1462 通往奥格瑞玛的道路 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡 ...

  8. 全面解析Java类加载器

    深入理解和探究Java类加载机制---- 1.java.lang.ClassLoader类介绍 java.lang.ClassLoader类的基本职责就是根据一个指定的类的名称,找到或者生成其对应的字 ...

  9. 【POJ3666】Making the Grade 离散化+DP

    学到了一个引理:在满足S最小化的条件下,一定存在一种构造序列B的方案,使得序列B中的数值都来自于A中.(数学归纳法+中位数定理得证) 对于状态的表示来说,首先肯定有一个 i ,表示选到了第 i 个数时 ...

  10. vue实现添加与删除图书

    先放大图,当我们点击删除的时候,图书名单就会被我们删掉.当我们重新添加回来或者添加新书的时候,我们只需要在添加新书这里添加即可. 当我点击删除的时候,只需要的就是除却删除的那一个书籍之后剩下的图书. ...