• Arbiter 系统使用说明


    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中的文件夹名称相同.
    • 选择考试, 点击测评即可. 注意这个软件设计的非常辣鸡, 测评的时候不要乱动鼠标, 不然会当机.

    FAQ

    • 如果有人有疑问可以在评论区提出, 会在这里统一解答.

    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即可
    
  • 相关阅读:
    ♫【插件】插入Flash swfobject
    ☀【Alice】
    _#【Vim】
    _#【选择器】链式class选择器
    _#【HTML】
    _#【CSS】display:inlineblock
    【折叠】一
    图解SSIS自动维护SQL索引
    wininet.dll函数库:检查网络状态
    sqlserver中动态sql语句应用
  • 原文地址:https://www.cnblogs.com/gengchen/p/7761565.html
Copyright © 2020-2023  润新知