TPS
跳至導覽
跳至搜尋
TPS(Task Preparation System)是一套可以方便產生題目測試資料以及題本的工具,關於 TPS 可以參考以下的 Github Repo:
- TPS Example:https://github.com/TNFSH-Programming-Contest/TPS-example
- IOI 2017 TPS:https://github.com/ioi-2017/tps
使用方式
以下有此標誌的說明需要 CMS 系統管理員操作,出題者可忽略此說明。
建立Github Repo
- 進入tps-starter。
- 填寫Repo資訊
建立新題目
- 進入由 tps-starter 建立的 Github repo。
- 點擊 Actions。
- 在 Workflows 段落,點擊 New problem。
- 點擊 Run workflow,在 Folder name to create 輸入要建立的資料夾名稱。
- 資料夾名稱僅供命題人員識別用,不會顯示給參賽者。如果已排定題目順序,可用「pA、pB...」命名,亦可用題目的英文簡稱。
- 點擊藍色 Run workflow 按鈕。
- 等待約 1 分鐘。
競賽名稱
競賽名稱使用於:
- CMS 參賽介面左上角。
- 題本封面第一行。
- 題本內文各頁的左上角。
需寫入於:
- cover.tex。
- 各題目 problem.json 的 contest_name 欄位。
- CMS 管理系統的 Description 欄位。
題目名稱
題目名稱使用於:
- CMS 題目敘述頁面。
- 題目標題(第一頁第一行)。
- 該題目各頁右上角。
需寫入於 problem.json 的 title 欄位。
題目英文名稱
題目英文名稱應足以讓所有命題人員識別個別題目即可,通常取自於中文題目名稱,並盡量僅使用一個英文詞,首字大寫,若需要兩個英文詞以上,則使用PascalCase。使用於:
- CMS 參賽介面題目列表。
- CMS 題目敘述。
- CMS 系統內部用來識別題目的 Primary key。
- 由於同一 CMS 系統上的名稱無法重複,若與其他競賽題目衝突[1],建議加上競賽名稱的英文縮寫作為前綴(例如「2022P-」)。
- 可能作為 Github repo 內的題目資料夾名稱。
需寫入於 problem.json 的 name 欄位。
題目編號
題目編號為 A, B, C... 的流水號,在決定題目順序後才會確定,使用於:
- 題目標題(第一頁第一行)。
- 該題目各頁右上角。
- 該題目各頁頁碼處。
記憶體限制
需寫入於 problem.json 的 memory_limit 欄位,單位為MB。
時間限制
需寫入於 problem.json 的 time_limit 欄位,單位為秒。
標程
AC code(官方解法、標程等)需放置在 solution 資料夾內,檔名無限制。同時將該檔名寫入 solutions.json ,格式請參照範本,verdict 必須標記為 model_solution。
其他 AC code 亦按照前述方式操作,verdict 必須標記為 correct。
其他類型的錯誤解法亦按照前述方式操作,verdict 標記方式請參考官方說明及 tps script。