除了台灣代表隊的國手選拔以外,其他國家一定也有類似的選拔過程吧!大多數國家選拔國手的考試內容都不會公開(台灣其實也是),不過也有一些國家的部分考試題目是公開的,而這些題目也成為了選手們自學或培訓階段非常重要的資源。
美國的 USACO 在賽季期間幾乎每個月會舉辦 (賽後評分的) 公開賽,我們那個年代分成銅 Bronze、銀 Silver、金 Gold 三個等級,你必須要在前一個等級拿到滿分,下個月才得以參加下一個等級的比賽。這幾年似乎除了金等級以外,還多了一個白金等級 Platium。我的印象中能參加白金等級是能進入美國選訓營的必要條件。遙想當年,銅等級和銀等級對於台灣的選手們來說,只要不出現超笨的失誤通常都可以順利拿到滿分。金等級就比較困難些了,有時還得仰賴運氣,當年的我從來沒有拿過金等級的滿分...據說最近幾年銀等級的題目變得更具挑戰性,已經沒有像以前那麼簡單了。
波蘭的資奧培訓資源歷史非常悠久。他們每一年都會將考試題目翻譯成英文並且公開在他們的評測系統上。雖然不像 USACO 可以即時參與部分比賽,也能夠在比完賽後透過他們的系統上傳程式碼作練習。波蘭的集訓制度與台灣比較接近,包含三個階段,其中二階與三階包含了時程較短的選手集訓。我對波蘭選拔賽印象深刻的地方是,他們的第一階段競賽時間長達一個月,但是是時間截止後才進行評分。前 400 名可以進入第二階段 (這人數真的爆炸多)。二階段與三階段分別是兩場 5 小時的資奧制度比賽,二階段從這 400 名選手中選 80 名,三階段從 80 名選手中選 4 名國手,並且按照名次頒發一等獎、二等獎、三等獎。
由於參賽人數眾多且歷史悠久,遇到好題的機會自然就高了許多。當年有許多絕妙好題都是從 POI 傳出來的呢。以前還有附上波蘭文的解答,閱讀的時候滿痛苦的,所以只好自己把答案想出來而不去看解答囉。
由於克羅埃西亞承辦了 2007 年的 IOI,當年的比賽系統是各國自行架設的。從 2006 年起克羅埃西亞自創了一套比賽上傳系統。他們每年也利用這套系統舉辦了許多公開賽。發展至今,每一年都會將選國手第一階段的題目放到公開系統上,舉辦六場公開賽。每場公開賽的參加人數大約落在 300 人左右。近幾年每一場比賽會有五題,其中前三題是稍微簡單些的,值得思考的可能只有第四題和第五題。克羅埃西亞的國手選拔機制請參考 SorahISA 大神寫的這篇文章: https://hackmd.io/@SorahISA-OIer/noi-croatia。
日本的國內選拔賽的題目一向都是純日文,但這幾年日本陸續地將他們的題目翻譯成英文,並且邀請大家一起參加線上同步賽或是鏡像重製賽。題組不少,包含了預選和本選 (對應到 TOI 初選,選出 30 名選手參加集訓)、春合宿 (對應到台灣的選訓營) 等題目,甚至還有選拔國際運算思維挑戰賽 (台灣這邊的官方網站) 的題目。JOI 本選與 JOISC 春合宿難的題目很難,而且是毫無頭緒、一步到位的那種難。春合宿的時間非常緊湊,會在連續四天之中進行四場模擬 IOI 的考試,每場 5 小時要寫 3 題。近幾年有英文版的線上賽可以一起比。
由於 IOI 題目與 ICPC 相較之下變化較多,評測系統不易架設。這幾年有人將世界各地能夠上傳到的題目都整理起來放在這邊了,大家有興趣可以參考:
https://oichecklist.pythonanywhere.com/
今天來分享一道我覺得在 POI 歷史上最酷炫的一題 Cave:給你一棵樹 T。樹上某一個節點有寶藏,但你並不知道寶藏放在哪一個節點。你手上有一個探測器,每一次你可以挑選樹上一個節點 v,並使用你的探測器。如果寶藏存放在該節點上,那麼探測器就會告訴你找到寶藏了。如果寶藏並不存放在該節點上,探測器會告訴你該往哪條路走(也就是,寶藏所在的方向為何)。請問在最壞情形下,為了找到寶藏,你最少能使用幾次探測器呢?