題目敘述故事
使用故事來包裝題目敘述,可以幫助參賽者更容易了解題目,又或是考驗參賽者的閱讀理解能力。
目的及優點
題目敘述通常會編寫故事來讓參賽者融入該問題的情境,以更好地了解題目所要問的內容。
範例1
可參考 TOJ 的題目 | |
|
110 學年度資訊學科能力競賽臺南一中校內初選 D. 花子一口吞
- 裸題敘(原始題敘)
- 給長度 N 的正整數數列 A,求一區間使「區間和 mod K」最大。
- 包裝後題敘
- 有容量不同的飼料盆排成一列,要把一個區間的飼料全部吃完,吃的時候會把嘴巴塞滿才吞下去,詢問最後一口剩餘在嘴中的飼料數量。
以上題目若僅使用裸題敘,參賽者可能就難以理解,可能會有「數列?區間?為什麼要 mod K?」等疑惑,但透過故事包裝的方式,讓題目變成現實生活中可能發生的情境,先透過故事引導參賽者融入情境,這時候再提出問題,便很容易理解問題是什麼。一些演算法原本就能解決現實生活中的問題,因此以實際會遇到的情境去包裝題目問題就能讓題目變得很易懂。
範例2
2008 網際網路程式設計全國大賽高中組決賽 B. 幼稚國王去旅行
- 裸題敘(原始題敘)
- 輸出 1 就是答案。
- 包裝後題敘
- 參見 題本。
相反的情況是將簡單的題目包裝起來,測驗參賽者的閱讀理解能力。另外對於 Hello World 或是 A+B 等題目,包裝一點故事才不會讓題敘過短。
總結
總結,使用故事來包裝題目敘述可以:
- 更容易理解題目。
- 純粹測試閱讀能力。
- 讓題目有趣一些。
- 讓不會解題的參賽者在競賽中不至於那麼無聊。
- 讓出題者對喜愛的作品置入性行銷。
題本架構
一般
可參考 TOJ 的題目 | |
能使用故事來包裝的題目,題目本文的架構通常如下:
一開始用少數幾句話介紹世界觀,通常與所參考的作品相同,這邊的介紹對解題通常沒有幫助,例如:
- TOJ 629 ─ GAMAGAMA 水族館面臨即將停業的危機
- TOJ 630 ─ 自稱為半龍人的貪吃少女 — 花子,實際上卻是魔界四大公爵-龍族法夫納家的下任家主!
- TOJ 637 ─ 今天小熊騎著本田小狼 50 兜風
進一步介紹故事劇情,這裡就會提到測資中會出現的設定,例如城市與道路的數量,例如:
- TOJ 629 ─ GAMAGAMA 水族館有兩條觀察大型水族箱的海底隧道...
- TOJ 630 ─ 她會選定某盆飼料開始一顆顆往嘴巴裡吃,一但到達嘴巴能裝的最多數量 K,就會一口吞下!
- TOJ 637 ─ 如果將所有的景點、店家等等都當作是一個節點,並且依序將節點從 1~n 編號,制高點編號為 1
最後提出題目真正要詢問的問題,例如:
無法包裝的題目
但還是有一些題目實在不會在現實生活中遇到,這時候只好勉為其難使用爛招,也就是在題目敘述寫一些無關緊要的描述,最後再直白的亮出問題。
Hello World
可參考 TOJ 的題目 | |
對於直接輸出 Hello World 的題目,實在沒有什麼劇情可言,通常做法是隨便介紹一下 Hello World 的由來,然後在輸出說明要求輸出 Hello World 而已。
數學題目
題目:請用「XX」造句。
答案:「今天老師出了一個題目,讓我們用XX造句。」
——造句的爛招
可參考 TOJ 的題目 | |
如同以上造句的通用解答,實際上對於所有題目也可以使用以下的通用敘述:
...(毫無意義的故事,通常與教室、老師有關)...
老師問了一個問題,請解出 XXXXX(題目本身)。
——數學題目的題目本文
插圖
題目插圖通常與題目本文中使用的故事相關,來提高參賽者解題興趣,例如使用動畫設定作為背景故事則會使用該動畫的截圖。無論有無插圖都不影響題意理解,故插圖不是必須的。
\begin{figure}[h]
\centering
\includegraphics[width=12cm]{FILENAME.jpg}
\caption{圖片說明,出自動畫《動畫名稱》}
\end{figure}
可參考 TOJ 的題目 | |
|
建議可使用有創用CC等授權條款,或其他明確向公眾授權的圖片,例如吉卜力工作室的動畫劇照[2]等。
引用受著作權保護的圖片將依著作權法[3]第 52 條[4]以教學為目的主張合理使用。唯應依同法第 64 條[5]標明出處,在圖片說明以「出自動畫《動畫名稱》」等字樣標示。另根據同法第 65 條[6]第 2 款第 3 項,縮小圖片解析度,建議在 12cm 的顯示效果下將圖片寬度壓縮至 640 px(16:9 的圖片高度為 360px)。
如果可行,應嘗試向著作權人取得授權(如右圖),依著作權法第 65 條[6]第 3 項確認合理使用範圍,例如第四屆大臺南高一生程式設計排名賽所使用的圖片。
參考資料
- ↑ https://github.com/TNFSH-Programming-Contest/tps-task-templates/blob/main/default/statement/index.md
- ↑ https://www.ghibli.jp/info/013409/
- ↑ https://law.moj.gov.tw/LawClass/LawAll.aspx?PCode=J0070017
- ↑ https://law.moj.gov.tw/LawClass/LawSingle.aspx?pcode=J0070017&flno=52
- ↑ https://law.moj.gov.tw/LawClass/LawSingle.aspx?pcode=J0070017&flno=64
- ↑ 6.0 6.1 https://law.moj.gov.tw/LawClass/LawSingle.aspx?pcode=J0070017&flno=65
資料結構與故事設定
求餘數
可參考 TOJ 的題目 | |
|
除法的求餘數可以轉換成多次的減法,例如:
- 使用容量為 K 的水瓢從水缸舀水直到無法盛滿水瓢,問最後剩餘的水量。
若僅是答案過大而需要取餘數輸出,可以直接寫在輸出說明,不一定要作為題敘的一部分。
圖
可參考 TOJ 的題目 | |
|
圖論問題通常可以轉換為:
- 城市與相連的道路。
- 車站與相連的鐵路。
有向無環圖
可參考 TOJ 的題目 | |
|
有向無環圖可拆成「有向」和「無環」兩個性質。「有向」可簡單地描述為單向道即可。「無環」則可以在題目中暗示說不會走到重複的點。
樹
可參考 TOJ 的題目 | |
|
樹仍可以轉換為道路或鐵路,但加上「因為資源有限,所以能讓任兩個城市或車站連通即可」的設定。
最小生成樹
最小生成樹通常用於要建立道路相連多個城市,使得所有城市連通,權重為該條道路的建設成本,目標為總建設成本最低。
有根樹
可參考 TOJ 的題目 | |
|
有根樹可以轉換為根節點位於山頂,邊為往山下的道路。
故事題材
故事通常是由編寫者挑選自己熟悉的作品,內容包含日本動畫、遊戲、VTuber等等題材。並且可以在題敘中進行置入性行銷,推薦自己喜愛的作品。
使用日本動畫的題目
動畫季別 | 動畫名稱 | 題目 | 備註 |
---|---|---|---|
2017年7月 | Princess Principal | TOJ 400 - B. 羅馬數字 | 2018臺南一中資訊社寒訓練習賽 |
2018年1月 | 庫洛魔法使:透明牌篇 | TOJ 401 - C. 封印解除 | 2018臺南一中資訊社寒訓練習賽 |
2018年1月 | 爆肝工程師的異世界狂想曲 | TOJ 402 - D. 咒文詠唱 | 2018臺南一中資訊社寒訓練習賽 |
2017年10月 | 少女終末旅行 | TOJ 403 - E. 旅行問題 | 2018臺南一中資訊社寒訓練習賽 |
2020年1月 | 戀愛中的小行星 | TOJ 507 - A. 二分圖匹配 | 2020臺南一中校內程式設計大賽 |
2020年1月 | 戀愛中的小行星 | TOJ 508 - B. 完美河道 | 2020臺南一中校內程式設計大賽 |
2020年1月 | 戀愛中的小行星 | TOJ 509 - C. Puyo | 2020臺南一中校內程式設計大賽 |
2019年9月 | HELLO WORLD | TOJ 547 - 0. Hello World | 第七屆國中生程設營練習賽 |
2020年7月 | 魔王學院的不適任者~史上最強的魔王始祖,轉生就讀子孫們的學校~ | TOJ 548 - A. 阿諾斯·波魯迪戈烏多 | 第七屆國中生程設營練習賽 |
2016年1月 | 為美好的世界獻上祝福! | TOJ 553 - F. 更改咒語 | 第七屆國中生程設營練習賽 |
2020年4月 | 輝夜姬想讓人告白~天才們的戀愛頭腦戰~第2季 | TOJ 554 - G. 石上真男人 | 第七屆國中生程設營練習賽 |
2020年2月 | 哥布林殺手:GOBLIN'S CROWN | TOJ 555 - A. 哥布林 | 109學年度資訊學科能力競賽臺南一中校內初選 |
2020年7月 | 果然我的青春戀愛喜劇搞錯了。完 | TOJ 556 - B. 舞會 | 109學年度資訊學科能力競賽臺南一中校內初選 |
2020年1月 | 怕痛的我,把防禦力點滿就對了 | TOJ 564 - D. 大楓樹 | 109學年度資訊學科能力競賽臺南一中校內初選 |
2020年1月 | 緣結熊本 | TOJ 565 - E. 熊本 | 109學年度資訊學科能力競賽臺南一中校內初選 |
2020年10月 | 熊熊勇闖異世界 | TOJ 566 - A. 熊熊 | 109學年度資訊學科能力競賽臺南一中校內複選 |
2020年7月 | Lapis Re:LiGHTs | TOJ 567 - B. LiGHTs | 109學年度資訊學科能力競賽臺南一中校內複選 |
2020年1月 | 神推偶像登上武道館我就死而無憾 | TOJ 568 - C. ChamJam | 109學年度資訊學科能力競賽臺南一中校內複選 |
2020年1月 | 房間露營△ | TOJ 569 - D. 露營 | 109學年度資訊學科能力競賽臺南一中校內複選 |
2017年1月 | 幼女戰記 | TOJ 570 - E. 存在X | 109學年度資訊學科能力競賽臺南一中校內複選 |
2021年1月 | 轉生成蜘蛛又怎樣! | TOJ 579 - pA - 蜘蛛 | SCIST 第一屆 演算法季後賽 |
2021年4月 | 壽司大相撲 | TOJ 581 - pB - 壽司 | SCIST 第一屆 演算法季後賽 |
2021年4月 | Vivy -Fluorite Eye's Song- | TOJ 582 - pC - Vivy | SCIST 第一屆 演算法季後賽 |
2021年4月 | 持續狩獵史萊姆三百年,不知不覺就練到LV MAX | TOJ 583 - pD - Slime | SCIST 第一屆 演算法季後賽 |
2021年4月 | 轉生史萊姆日記 關於我轉生變成史萊姆這檔事 | TOJ 584 - pE - 種田 | SCIST 第一屆 演算法季後賽 |
2021年7月 | 陰晴不定的體操哥哥 | TOJ 627 - A. ABC體操 | 110學年度資訊學科能力競賽臺南一中校內初選 |
2020年7月 | 果然我的青春戀愛喜劇搞錯了。完 | TOJ 628 - B. 國中會考分發 | 110學年度資訊學科能力競賽臺南一中校內初選 |
2021年7月 | 白沙的Aquatope | TOJ 629 - C. GAMAGAMA | 110學年度資訊學科能力競賽臺南一中校內初選 |
2019年10月 | 萌獸寵物店 | TOJ 630 - D. 花子一口吞 | 110學年度資訊學科能力競賽臺南一中校內初選 |
2021年7月 | 關於我轉生變成史萊姆這檔事第2期第2部分 | TOJ 631 - E. 蓋歐格 | 110學年度資訊學科能力競賽臺南一中校內初選 |
2021年7月 | Love Live! Superstar!! | TOJ 632 - F. 最小生成數 | 110學年度資訊學科能力競賽臺南一中校內初選 |
2009年7月 | 簡單易懂的現代魔法 | TOJ 633 - G. 簡單易懂的現代魔法 | 110學年度資訊學科能力競賽臺南一中校內初選 |
2018年10月 | JoJo的奇妙冒險·第四部·不滅鑽石 | TOJ 634 - A. 吉良吉影想平靜地過日子 | 110學年度資訊學科能力競賽臺南一中校內複選 |
2021年7月 | 我們的重製人生 | TOJ 635 - B. 學測分發 | 110學年度資訊學科能力競賽臺南一中校內複選 |
2019年8月 | 為美好的世界獻上祝福!紅傳說 | TOJ 636 - C. 為美好的地牢獻上爆擊 | 110學年度資訊學科能力競賽臺南一中校內複選 |
2021年4月 | 本田小狼與我 | TOJ 637 - D. 本田小狼 | 110學年度資訊學科能力競賽臺南一中校內複選 |
1996年4月 | 玩偶遊戲 | TOJ 638 - E. 遞迴呀遞迴 | 110學年度資訊學科能力競賽臺南一中校內複選 |
使用《愛麗絲與藏六》的題目
- 106學年度台南一中資訊學科能力競賽校內初選
使用《高捷少女》的題目
- 第四屆大臺南高一生程式設計排名賽
- TOJ 399 - A. 大數運算(2018臺南一中資訊社寒訓練習賽)