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