安裝NOI linux
我這邊用的是虛擬機,不過考慮到 arbiter 比較卡,所以也可以考慮直接裝成系統來提高評測速度。
首先從官網上下載 NOI linux 的 鏡像文件
然后就直接安裝系統,它的系統是 Ubuntu 14,所以直接按照 Ubuntu 的分區方式來就好。
裝好之后用默認的密碼 123456
就可以登錄了。
Arbiter 的使用
進入系統之后點擊左上角可以從 編程
中找到 Arbiter,如圖:
新建比賽
首先先打開 nautilus
,在一個你喜歡的地方新建文件夾。比如說這里我在桌面新建了一個叫noip contest
的文件夾:
然后在 Arbiter 中選擇新建比賽,找到這個文件夾/home/noilinux/Desktop/noip contest
,點擊確定。
建好比賽之后可以新建考試,在考試中能夠添加題目。
添加數據
Arbiter 中數據的格式是以 xx.in
、 xx.ans
的形式命名的。例如一個名叫 “example” 的題目,一共10個數據點,那么你就需要准備 example1.in
~ example10.in
和 example1.ans
~ example10.ans
這些文件。
所有的數據都應該放到 evaldata
文件夾中,不需要新建子文件夾。
選手代碼
你可以手動添加選手,也可以通過csv導入。
在添加完選手之后,你需要把選手的代碼都放到對應編號的文件夾下,再全部放入 players
文件夾中。
文件夾結構如下
| players
|- 編號
| |- 試題文件夾
| |- 源文件
如圖:
測試
完成上面的步驟之后就可以開始測試了。
測試之后評測細節可以在 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之后補一點截圖