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即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM