「CMS」:修訂間差異
跳至導覽
跳至搜尋
(匯入) |
無編輯摘要 |
||
行 1: | 行 1: | ||
官方文件 |
官方文件:https://cms.readthedocs.io/en/v1.4/ |
||
== 建立競賽 == |
|||
# 點擊 Administration |
|||
每個題目需要設定的內容包含了: |
|||
# 在 Contests 段落,點擊 (create new contest...) |
|||
# 在 Name 輸入英文競賽名稱,此欄位不會顯示給參賽者 |
|||
# 點擊 Submit |
|||
== 設定競賽 == |
|||
* 題目名稱 |
|||
以下說明是根據預設設定需要修改的欄位,其餘欄位不需更動。 |
|||
* 計分模式 |
|||
* 時間限制(ms) |
|||
* 記憶體大小限制(MiB) |
|||
* 上傳間隔(s) |
|||
* 測試資料 |
|||
* 配分 |
|||
{| class="wikitable" |
|||
計分模式 要設定成 IOI 2017。在 CMS 當中是顯示: |
|||
|- |
|||
<code>Use the sum over each subtask of the best result for that subtask across all submissions (IOI 2017-)</code> |
|||
! 欄位 !! 欄位說明 !! 操作說明 |
|||
上傳間隔 則是依照每場比賽不同而調整。 |
|||
|- |
|||
| Description || 中文競賽名稱 || 顯示於競賽介面左上角 |
|||
|- |
|||
| Allowed programming languages |
|||
| 參賽者可以使用的程式語言 |
|||
| 僅勾選以下 4 項,其餘取消勾選 |
|||
# C++11 / g++ |
|||
# C++14 / g++ |
|||
# C++17 / g++ |
|||
# C11 / gcc |
|||
請務必測試每個語言皆能正常編譯 |
|||
|- |
|||
| Allow user tests || 開啟「線上測試」介面,允許參賽者在伺服器上編輯並執行自訂輸入 || 視競賽決定是否勾選 |
|||
|- |
|||
| Token mode || || 設為 Disabled |
|||
|- |
|||
| Start time || 競賽開始時間 || 注意時區為 UTC,為本地時間 -8 小時,建議於準備時期設為未來日期,在競賽開始前才設為正確時間 |
|||
|- |
|||
| End time || 競賽結束時間 || 同上 |
|||
|- |
|||
| Minimum interval between submissions || 上傳時間間隔 || 應設為空字串,不對所有題目進行限制,應對個別題目限制 |
|||
|} |
|||
== 題目設定 == |
|||
以 IOI 2021 為例,建格式設定 1 分鐘(60 秒),最後的 15 分鐘取消上傳間隔。 |
|||
如果使用 [[TPS]] 格式,通常匯入後無需在 CMS 管理介面進行設定。以下說明手動新增題目需設定的欄位。 |
|||
{| class="wikitable" |
|||
測試資料 的部分可以依照下面的格式走: |
|||
|+ Task configuration |
|||
|- |
|||
! 欄位 !! 欄位說明 !! 操作說明 |
|||
|- |
|||
| Name |
|||
| 題目英文名稱 |
|||
| 顯示於: |
|||
# CMS 競賽概況的題目列表。 |
|||
# CMS 題目敘述。 |
|||
# CMS 系統內部用來識別題目的 [[zhwiki:主鍵|Primary key]]。 |
|||
#* 由於同一 CMS 系統上的名稱無法重複,若與其他競賽題目衝突<ref>https://github.com/cms-dev/cms/issues/765</ref>,建議加上競賽名稱的英文縮寫作為前綴(例如「2022P-」)。 |
|||
|- |
|||
| Title |
|||
| 題目中文名稱 |
|||
| 顯示於: |
|||
# CMS 競賽概況的題目列表。 |
|||
# CMS 題目敘述頁面。 |
|||
|- |
|||
| Feedback level |
|||
| 對參賽者顯示完整評測結果 |
|||
| 設為 Full |
|||
* Restricted:僅顯示第一筆非 AC 結果(及前面的所有 AC 結果) |
|||
* Full:顯示所有結果 |
|||
|- |
|||
| Token mode || || 設為 Disabled |
|||
|- |
|||
| Minimum interval between submissions || 上傳時間間隔 || 視比賽而定 |
|||
|- |
|||
| Score mode || 計分模式 || 應設為 Use the sum over each subtask of the best result for that subtask across all submissions (IOI 2017-) |
|||
|} |
|||
{| class="wikitable" |
|||
* 輸入檔 副檔名為 <code>.in</code> (上傳到 CMS 的時候記得要指定副檔名是 <code>*.in</code>) 名稱依照 <code>{子任務編號}_{子任務測資編號}</code> 如果該題只有一個子任務可以省略 <code>{子任務編號}_</code> 例如第一筆子任務的第三個側資檔名就會是 <code>1_3.in</code> |
|||
|+ Datasets |
|||
* 輸出檔 副檔名為 <code>.out</code> (上傳到 CMS 的時候記得要指定副檔名是 <code>*.out</code>) 名稱依照 <code>{子任務編號}_{子任務測資編號}</code> 如果該題只有一個子任務可以省略 <code>{子任務編號}_</code> 例如第一筆子任務的第三個側資檔名就會是 <code>1_3.out</code> |
|||
|- |
|||
! 欄位 !! 欄位說明 !! 操作說明 |
|||
|- |
|||
| Time limit || 時間限制 || 單位為秒 |
|||
|- |
|||
| Memory limit || 記憶體限制 || 單位為 MiB |
|||
|- |
|||
| Task type || 題目類型 || 通常為 Batch |
|||
|- |
|||
| Score Type || 計分類型 || 通常為 GroupMin |
|||
|- |
|||
| Score Parameters || 分數參數 || 參見[[#Score Parameters|Score Parameters]] |
|||
|} |
|||
{{reflist-talk}} |
|||
最後把全部的測資包成一個 zip,直接選擇一次上傳多筆測資(Upload Multiple Subtasks) |
|||
=== Score Parameters === |
|||
配分 的部分我們通常是使用 GroupMin,也就是子任務的每一筆測試資料都要通過才會拿到整筆子任務的分數。 |
|||
分數參數格式為 <syntaxhighlight lang="json" inline>[[m1, t1], [m2, t2], ...]</syntaxhighlight> ,根據你命名測資檔的方式,分為以下兩種格式。 |
|||
可參考:https://cms.readthedocs.io/en/v1.4/Score%20types.html#groupmin |
|||
如果是採用編號的方式命名測資名稱,那麼可以選擇使用這種方式: |
|||
<code>[[子任務1配分, 子任務1測資數], [子任務2配分, 子任務2測資數], ...]</code> |
|||
==== 流水號 ==== |
|||
或是使用 Regular Expression 來表示對應到的測資名稱: |
|||
適用於檔名依序命名為 1, 2, 3...。 |
|||
<code>[[子任務1配分, 正則表達式1], [子任務2配分, 正則表達式2], ...]</code> |
|||
可以參考: https://cms.readthedocs.io/en/v1.4/Score%20types.html#groupmin |
|||
tn 表示依序號使用的測資數量,前 t1 筆測資配分為 m1,接下來 t2 筆測資配分為 m2,以此類推。 |
|||
例如 <syntaxhighlight lang="json" inline>[[20, 10], [30, 20], [50, 30]]</syntaxhighlight> 表示:第 1 ~ 10 筆測資 20 分、第 11 ~ 30 筆測資 30 分、第 31 ~ 60 筆測資 50 分。 |
|||
==== 依測資點分組 ==== |
|||
適用於檔名命名為 「a-b」,a 為測資點,b 為該測資點的流水號,例如 1-02 表示第 1 個測資點的第 2 筆測資。 |
|||
tn 為一正規表達式,例如 <syntaxhighlight lang="json" inline>[[20, "1-.+"], [30, "2-.+"], [50, "3-.+"]]</syntaxhighlight> 表示:第 1 個測資點 20 分、第 2 個測資點 30 分、第 3 個測資點 50 分。 |
|||
如果需要讓該筆子任務的測資直接包含其他子任務,可用正規表達式方式達成。 |
|||
=== Upload testcases === |
|||
點擊 Add multiple testcases 後會進到上船測資介面,測資應預先準備於一個資料夾內,建議輸入檔副檔名為 .in,輸出檔副檔名為 .out,並壓縮成 zip 檔。 |
|||
{| class="wikitable" |
|||
|- |
|||
! 欄位 !! 欄位說明 !! 操作說明 |
|||
|- |
|||
| Archive || 壓縮檔 || 選擇壓縮檔 |
|||
|- |
|||
| Public || 是否公開測資點(並非公開測資內容) || 應勾選 |
|||
|- |
|||
| Overwrite existing testcases || 覆蓋相同檔名測資 || 視情況勾選,通常更新測資時需勾選 |
|||
|- |
|||
| Input file names template || 輸入檔命名規則 || 通常為 *.in |
|||
|- |
|||
| Output file names template || 輸出檔命名規則 || 通常為 *.out |
|||
|} |
|||
* Archive |
|||
* Public 應勾選 |
|||
* Overwrite existing testcases 視情況 |
於 2022年8月18日 (四) 22:48 的修訂
官方文件:https://cms.readthedocs.io/en/v1.4/
建立競賽
- 點擊 Administration
- 在 Contests 段落,點擊 (create new contest...)
- 在 Name 輸入英文競賽名稱,此欄位不會顯示給參賽者
- 點擊 Submit
設定競賽
以下說明是根據預設設定需要修改的欄位,其餘欄位不需更動。
欄位 | 欄位說明 | 操作說明 |
---|---|---|
Description | 中文競賽名稱 | 顯示於競賽介面左上角 |
Allowed programming languages | 參賽者可以使用的程式語言 | 僅勾選以下 4 項,其餘取消勾選
請務必測試每個語言皆能正常編譯 |
Allow user tests | 開啟「線上測試」介面,允許參賽者在伺服器上編輯並執行自訂輸入 | 視競賽決定是否勾選 |
Token mode | 設為 Disabled | |
Start time | 競賽開始時間 | 注意時區為 UTC,為本地時間 -8 小時,建議於準備時期設為未來日期,在競賽開始前才設為正確時間 |
End time | 競賽結束時間 | 同上 |
Minimum interval between submissions | 上傳時間間隔 | 應設為空字串,不對所有題目進行限制,應對個別題目限制 |
題目設定
如果使用 TPS 格式,通常匯入後無需在 CMS 管理介面進行設定。以下說明手動新增題目需設定的欄位。
欄位 | 欄位說明 | 操作說明 |
---|---|---|
Name | 題目英文名稱 | 顯示於:
|
Title | 題目中文名稱 | 顯示於:
|
Feedback level | 對參賽者顯示完整評測結果 | 設為 Full
|
Token mode | 設為 Disabled | |
Minimum interval between submissions | 上傳時間間隔 | 視比賽而定 |
Score mode | 計分模式 | 應設為 Use the sum over each subtask of the best result for that subtask across all submissions (IOI 2017-) |
欄位 | 欄位說明 | 操作說明 |
---|---|---|
Time limit | 時間限制 | 單位為秒 |
Memory limit | 記憶體限制 | 單位為 MiB |
Task type | 題目類型 | 通常為 Batch |
Score Type | 計分類型 | 通常為 GroupMin |
Score Parameters | 分數參數 | 參見Score Parameters |
Score Parameters
分數參數格式為 [[m1, t1], [m2, t2], ...]
,根據你命名測資檔的方式,分為以下兩種格式。
可參考:https://cms.readthedocs.io/en/v1.4/Score%20types.html#groupmin
流水號
適用於檔名依序命名為 1, 2, 3...。
tn 表示依序號使用的測資數量,前 t1 筆測資配分為 m1,接下來 t2 筆測資配分為 m2,以此類推。
例如 [[20, 10], [30, 20], [50, 30]]
表示:第 1 ~ 10 筆測資 20 分、第 11 ~ 30 筆測資 30 分、第 31 ~ 60 筆測資 50 分。
依測資點分組
適用於檔名命名為 「a-b」,a 為測資點,b 為該測資點的流水號,例如 1-02 表示第 1 個測資點的第 2 筆測資。
tn 為一正規表達式,例如 [[20, "1-.+"], [30, "2-.+"], [50, "3-.+"]]
表示:第 1 個測資點 20 分、第 2 個測資點 30 分、第 3 個測資點 50 分。
如果需要讓該筆子任務的測資直接包含其他子任務,可用正規表達式方式達成。
Upload testcases
點擊 Add multiple testcases 後會進到上船測資介面,測資應預先準備於一個資料夾內,建議輸入檔副檔名為 .in,輸出檔副檔名為 .out,並壓縮成 zip 檔。
欄位 | 欄位說明 | 操作說明 |
---|---|---|
Archive | 壓縮檔 | 選擇壓縮檔 |
Public | 是否公開測資點(並非公開測資內容) | 應勾選 |
Overwrite existing testcases | 覆蓋相同檔名測資 | 視情況勾選,通常更新測資時需勾選 |
Input file names template | 輸入檔命名規則 | 通常為 *.in |
Output file names template | 輸出檔命名規則 | 通常為 *.out |
- Archive
- Public 應勾選
- Overwrite existing testcases 視情況