ICPC World Finals 2025
前言
這篇文章是以我自己的視角所撰寫的 49th ICPC World Finals 的心得,文章內沒有對題目的爆雷可以安心看。
賽前
總之雖然 APAC 打的很醜但還是順利進了 49th ICPC World Finals。這段時間基本上把所有能打的 WF 場都練過了一遍,一開始有點不太習慣題型但後面就感覺打的蠻順的,甚至最後還贏了神祕的 virtual 成績拿金牌才能加分的賭局。但雖然如此看今年其他隊的整體實力感覺都比前幾年強不少,感覺還是希望有個獎牌就好了。
Day 0
我們預計會搭這天 23:50 起飛到杜拜的飛機,然後再轉機到亞塞拜然。
前一天聽說交大因為邀請函不是政府發的所以他們沒有被地勤發登機證,有點可怕,有點擔心會連出都出不去。不過擔心也沒用所以早上跟下午前半把事情弄的差不多之後還有一點時間就先跑去培訓班晃一下,原本想說亂打一下搶個首殺但失敗了,不知道為什麼那題我會想那麼久,明明觀察超早就做完了= =。
後來大概 19:00 就從宿舍出發準備去機場,來到了最緊張的領登機證時間,結果地勤看了好久又跑出去問了一下人才給我們登機證,隔壁清大的教練說他馬上就拿到了。不過幸好最後還是有順利拿到,不然沒拿到的話我們也不知道該怎麼辦。之後就在登機門等了大概一個小時之後順利登機。
Day 1
第一趟飛機要飛大概八個小時但我睡不著,中間只有眼睛閉了大概三個小時但感覺沒有睡著,所以下飛機的時候感覺超累。等轉機跟第二趟飛機我就都在試著睡覺,但感覺下飛機的時候還是很累。
總之下飛機後在準備入境的地方就遇到卡車和其他要來 WF 的台灣人,他叫我們在這裡等一下,後來等了一會兒後早到的那一批人就先從旁邊的小通道通關了,然後過沒多久我們也過去了。
當下只覺得「蛤那麼順利的嗎」XD,真的很感謝卡車等人的幫忙 ><。後來拿完行李之後就遇到更多 ICPC 的工作人員,他們要了點資料後就準備上交通車到飯店。
到了飯店之後就順利的 check in,這間飯店很大但不高,一層樓粗略算過大概有個 300 間房間,不過只有兩個地方有電梯,從最近的電梯到我們的房間要走大約兩分鐘,蠻久的。
後來就是等報到,我們有收到兩個報到時間 15:00 跟 20:18,比較早的是拿衣服、紀念品之類的,比較晚的就是要交 codebook 跟吉祥物的。
這時候現在才 13:00 而已,加上一些意外我沒有在機場買 SIM 卡,查一下發現一公里內有一間疑似有在賣 SIM 卡的店,加上 syl 想要去看看哪裡有東西吃,所以我們就決定出去看看。
亞塞拜然的路上感覺車子不多,然後路都很寬,有一個很寬的馬路需要走地下道才能過去,然後地下道寬到可能有個 15 公尺,甚至還有手扶梯 (??),然後外面的建築物看起來都有各種弧線,每棟都像是台中歌劇院但沒有那麼多凹洞的那種感覺。
總之走了一會兒之後就到了,然後快到的時候我們才想到店員不一定會講英文,然後發現他真的不會,所以就在手機上面打 SIM card 給他看,然後他搖頭我就知道沒了。反正另外兩個隊友都有漫遊所以是不至於聯絡不到我們,但第一次出國沒有行動網路還是有點不安。
後來回去之後發現比較早的報到已經開始了,所以就去把紀念品、衣服等東西拿了回房間整理。衣服一共拿到了 13 件,有夠多。然後紀念品還有包包、水杯,比較特別的是有一個當地吉祥物的娃娃,那個很細但很長,感覺要拿回去超級佔空間 XD。
後來因為沒吃午餐肚子有點餓,所以就學了交大訂了 KFC 外送,但因為比較晚訂所以只訂了一份。
太晚訂拿到的時候已經四點多了,吃完也感覺有點飽,總之就再先睡一下等六點的晚餐時間。那時候花了一段時間找在哪裡吃才發現在 chillzone 裡面。chillzone 是飯店的一樓另外切出來的一個區域,裡面有一些贊助商的攤位還有像是一些棋類遊戲例如象棋,之後有些活動也會辦在這裡。總之後來就進去 chillzone 裡面的餐廳吃飯,食物感覺有點微妙,我自己在台灣是不怎麼挑食的但那裡的食物真的不太符合我的口味,有些東西我也不太敢吃所以也沒有吃很多。
吃完又回飯店耍廢一下就等到我們表定的報到時間準備去報到,一開始還排錯地方後來忘了是遇到卡車還是東大教練我們才排到對的地方。後來就跟在交大隊的後面完成了報到,後面沒事情做就先回房間休息了。
Day 2
開幕典禮
今天起床之後就先去吃早餐,早餐的地點跟昨天晚餐一樣,跟昨天不一樣的是今天的正常了不少,至少可以吃的東西蠻多的,雖然只有馬鈴薯比較像是主食。吃完之後就準備搭接駁車到比賽會場。
比賽會場一樣是一棟看起來很高級的建築物,裡面一樣有 chillzone,這裡的 chillzone 就比飯店的大了不少,有發各種零食、飲料甚至還有冰淇淋的攤位,然後贊助商也會發些有趣的 puzzle,像是那時候幾乎每個人都會拿著一張數獨在那邊解。
今天大概的行程是早上有演講,下午是開幕典禮。早上的演講是在介紹 做負權 SSSP 的那個研究,之前做專題的時候我有稍微讀過但還沒有到很懂 XD。午餐感覺還不錯,小插曲是我們在排隊的時候被前面的 ASU 的人用中文搭話,然後問說誰是 BurnedChicken,然後聽到之後就跟他旁邊的人說「喔他是這裡 CF rating 最高的人」,不愧是名人。
後來吃飯的桌子在他們隔壁就有再跟他們聊一下,然後發現裡面有一個長的像西方人的人居然也會中文,有點扯。
:會不會這裡隨便戳三個人就有一個人會講中文
後來開幕典禮前有再去比賽會場對面的博物館參訪,之後就在同一棟大樓裡面參加開幕典禮,然後就回飯店了。
回飯店之後今天晚上有不少小活動就下去 chillzone 待了一下,大概發生的事情:
- maroonrk 來跟大家聊聊 Atcoder,然後就有一堆名人聚集,像是 Petr、ksun 跟 ecnerwala 等等,感覺在那裡講話的人全部都 CF LGM,我一個 IGM 只在旁邊聽不敢講話(可能也不知道可以講什麼,沒什麼在寫 Atcoder)
- 在旁邊聽的時候被青魚搭話,聽到我是台灣來的就轉換語言變成中文 XD。整個講話過程感覺我太緊張整個結結巴巴的,然後聽到他知道 std_abs 感覺有點欣慰。後來還被他送了青魚跟 ucup 的徽章。
- 因為在 CF 當 coordinator 所以出發前就知道 KAN 會準備禮物,然後在這時也遇到 KAN 並拿到了,有一件衣服跟外套,感覺有點不好意思因為我目前只弄兩場然後感覺也有點差強人意…。
總之算是收穫不少吧,見到了不少傳說級人物,後來就回房間休息了。
Day 3
今天是測機日。
早上一樣搭接駁車到會場、寄完包包之後就開始等待開始,題目有 12 題題但不同的只有六題,A=G, B=H 以此類推,都是之前 WF 的題目(雖然有一題我到現在還是沒印象但我隊友宣稱是)。測機大概發生的事情:
- F(或是說 L) judge 設爛了,他們過了很久才發現並 rejudge F,但他們忘了一起 rejudge L,過了好久他們才發現。
- judge 上面沒有地方可以看 time limit、memory limit,題本上面只有寫 time limit。
- 題本上面寫 time limit 1 秒,但實際測速度會想說「judge 怎麼那麼快可以一秒 1e10 個運算」,發現不對勁之後對 judge 二分搜一下 time limit 才發現其實是 30 秒!
- 鍵盤反斜線不在平常的位置,左 shift 也切成左右兩半,shift 只在左邊那塊。這部份算是我失策,因為他鍵盤太晚公佈了我就想說算了不買一把來練了,我也沒注意看照片沒發現有地方不一樣。後來在 open testing session 查了一下指令發現
xmodmap -e "keycode 94 = Shift_L"可以將右邊的 shift 也 map 成 shift,但反斜線就沒救了,反正平常可能就不太會打到(可能就 terminal 的 pipe 跟輸出)。 - 午餐的類三明治食物好硬而且是冰的,不怎麼好吃,酸黃瓜鹹到哭。還好除了那個他還有發一些小零食,不至於到時候沒好吃的東西吃。
- 測機題有一題我們那時候不會且沒有補的題,但我們看起來沒有想要做那題的意思所以就把時間讓所有人上來摸摸鍵盤了。
- 今年改用 PC2 所以聽波路說的就多測了一點 judge 的東西,體感起來有 lazy judge,但 time limit 30 秒實在是有點難感覺所以也不是很確定…。然後原本預計要測 stack size 但我忘記了。不過後來他在宣佈 memory limit 的時候有順便說 stack size 一樣是 2GB。
今年改用 PC2 原本以為不會有什麼大問題,但看起來問題蠻多的…。只能說還好是在測機發生這一堆包嗎?
測機結束有一個贊助商 JetBrains 一直都有的活動:邀請兩個高手上台用 kotlin 比賽,今年是邀請到 ecnerwala 跟 SecondThread,比較可惜的是今年這兩個人的實力差有點多所以比賽蠻一面倒的,感覺有點無聊。
後面就又在 chillzone 休息一下回飯店繼續到 chillzone 閒晃,看到東大教練在跟一個俄羅斯人(應該是 LeoPro?)玩象棋,還蠻有趣的。跟昨天一樣今年也有一些聊天的活動,但我今天有點累就沒有待太久,很早就回去房間休息了。
Day 4
今天主要的活動是 ICPC Challenge。
ICPC Challenge 贊助商華為辦的比賽,題目只有一題且比較偏向 heuristic 類,我們賽前沒有練習過就是了。總之跟昨天一樣就是先寄放完包包之後等待開始,小趣事是在等待室的時候正好東大的 Screenwalkers 後面還有空位就座他們後面跟他們閒聊一下,聽到他們說比起正賽他們對 ICPC Challenge 比較有信心。
之後就被關在比賽會場聽了一下沒有手機滑的華為演講之後就開始介紹題目,題目是某種 表格放長方形的題目,聽完一點想法都沒有。至於 Challenge 我們大概做了什麼:
- 我先再理解題目一下之後先上去寫一些執行的 script,順便把算分數的 grader 寫好,然後兩個隊友在討論要怎麼喇
- syl 想到了某種分塊爆搜或 dp 的作法,不知道怎麼樣總之就讓他上去寫寫看,我們就在旁邊一邊看他寫一邊想還有什麼東西可以做,但最後幾乎沒有想到
- 最後就一直在 debug 跟加一些小優化之間弄,弄完比賽就結束了 XD
聽起來我們根本沒做什麼事比賽就結束了,但對,我比賽的心得就是比賽時間也太短了吧。比完之後先頒了教練的獎,恭喜卡車拿到五年的獎 XD。後面就是 ICPC Challenge 的開板跟頒獎,最後我們排在第 42 名,前 12 名會有獎品,但我們跟他們的差距還蠻大的就是了…。然後封板前就第一的 Screenwalkers 拿了冠軍,真的好猛。
後面就沒有什麼行程了,回飯店好好休息準備明天的正賽。
Day 5
今天是正式比賽日。跟前面幾天的事情差不多,先吃完早餐然後準備搭接駁車到會場,然後慢慢等待進場與比賽開始,與傳聞的一樣一切都準備好就直接提早開始了。
比賽的部份是爆雷所以放在另一篇文章,自己斟酌看:連結
比完之後我的心情是非常低落的,就只是坐在電腦前面發呆,就跟幾個月前的 APAC 一樣,比完之後一臉茫然不知道自己剛剛五個小時到底在打三小。
之後過沒多久就看到傅老師來問我們後面有沒有過,然後他還分享了他問到的其他學校的成績,但我很清楚的知道在 penalty 炸掉的情況下只開一題是不夠拿牌,所以就算我知道傅老師是好意告訴我們這些資訊的,但當時我聽到這些只覺得更加煩躁而已。
後來的行程就是到一個看起來很厲害的會場閉幕典禮跟吃晚餐,但我還是沒有什麼心情吃晚餐,而且那個食物看起來也不是很好吃,然後後面就是等著開板,開板我們停在第 15 名,因為 4-17 名全部都同題數所以還撿到了 highest honors 上台領了獎。
後面就沒啥行程了,回去飯店休息。值得一提的是回程的接駁車我們跟拿冠軍的 SPb 搭同一班,而且那班接駁車很空感覺很適合講點話,但我社恐而且我感覺我現在心情不太適合社交就沒有了。
Day 6-7
雖然我們的飛機是 Day 7 的晚上還超級久,不過這兩天其實也沒有做什麼,比較有趣的可能是在 lobby 等傅老師的時候遇到 NUS 的 yuto 跟 penguinman 然後閒聊了一下,他先問我說我們還有沒有要打,恩都報 TOPC 了所以應該會吧,然後他們再問我們要去哪,我就說我還不確定但自己是想要去日本打打看,然後就看到 yuto 掩面因為他說他也要去日本 XD,後來他就直接攤牌說 penguinman 沒要打了然後他要跟 errorgorn 組一隊,然後要去台灣跟日本,當下聽到只覺得什麼鬼阿太可怕了吧,怎麼可以讓兩個 LGM 組一隊欺負別人。後來不知道為什麼就變成他們兩個在跟我勸退叫我們不要去日本,神祕。
回來這兩天做了什麼,原本聽說埃及 WF 有辦一些官方的 tour 可以參加,不過問了一下今年沒有,所以我也不知道要做什麼。但說真的因為打爛我也沒有什麼心情出去玩,但感覺都待在房間不出去逛逛有點可惜,所以 Day 6 下午我們就搭計程車到有一堆景點的地點,但因為太熱了降低了不少意願,所以我們吃完午餐之後大概晃個一個小時就又搭計程車回去了。Day 7 因為前面還要收行李就整天待在飯店,還打了一下那天的培訓班,之後就等到時間差不多就到機場等登機,然後就順利的先到杜拜轉機再回台灣了。
後話 & 近況
這一趟不知道是不是因為時差感覺特別累,所以在亞賽拜然只寫了第一天的前半段,然後比完之後覺得心情很複雜,再加上那陣子 TOPC 又發生了點事情就讓我心情更差就一直拖搞,拖到新一賽季的台中站快要開始了才想說好像要來補一下,結果那一陣子我又感冒,然後就又拖到年底了…
撇開比賽打爛的部份,這趟旅程我自己還是開心的,除了前面提過見到不少人以外,最大的一點還是我感覺自己這三年(或說的遠一點,六年)的努力好像有被看見了。這幾天被一些隊伍或是人打招呼說認識 std_abs 這隻隊伍其實我自己是很開心的,雖然有可能只是因為我們隊有 rating 很高的仲吧,但最讓印象深刻的是正賽前在等進場的時候我有被坐在後面的隊伍搭話(我忘記是哪間學校了對不起…),問說我們是 std_abs 嗎,然後說他有在網路上看到我們的 codebook。雖然裡面很多都是抄來的,但這份 codebook 幾乎全部都是我在維護的,這三年也對那份 codebook 還是下了不少苦工,尤其是賽前又有把幾何模板大改了一下。那份 codebook 可以說就是我這三年有在打比賽的證明,能被看到且被記住我是真的覺得很開心。
不過說真的比賽的結果還是讓我的心情很複雜,如果今天是拿個 2、30 這種差很多的名次我可能還不會怎樣,偏偏今天是拿了 15 這種不上不下的名次,而且我相信跟牌線的這一點 penalty 差距是我自己前期有正常發揮的情況下可以逆的,就覺得蠻可惜的。我自己其實是一個很害怕失敗的人,以往失敗的經驗都要花比想像中還要久才能恢復,所以要不是今年 WF 比較晚在新的賽季報名完後才開打,不然感覺我有機會比完這場 WF 就直接退役了。
我這段時間我一直在想我新的賽季到底要用什麼心態去面對這些比賽,我那時候有一半是想要再回去 APAC 或 WF 復仇,另一半就還是覺得不如把機會留給其他隊並且休閒打。畢竟我現在對「再進一次 WF」這件事還是感到害怕,而且我自己覺得再失敗一次的機會很大,畢竟目前我有的樣本就是我兩場比較大的比賽 APAC 跟 WF 都燒成白痴,但像 regional 或校內賽就又有正常發揮,我也不知道是什麼邏輯。這個問題已經困擾我很久了但我現在還沒有一個結論,也有可能只是小樣本然後碰巧這兩場我都燒雞,不過我也不是很想再想就是了。
總之因為我那時候心理衡量了一下覺得我還想要留個自己還有復仇機會的後路,所以就放棄了我一直想要體驗看看的日本站,還是選了對我們來說想要搶冠軍的首選的雅加達。會選雅加達其實違背我當初打 ICPC 想要多去不同國家看看的原則,但決定志願的那一陣子我的心情實在是太差而且情緒太不穩了,我當時只是想要選擇對我心理負擔最小的地方,而雅加達去年去過了而且每年都在 BINUS 對我的負擔當然是最小的,去年做過的事情全部照做一遍就好了,不然我覺得我正常情況下應該會提議去越南或是馬尼拉吧。不過還有一點是去完這趟亞塞拜然之後我覺得「確定食物是可以安心吃的」比我想像中來的重要許多,至少去雅加達食物不用擔心。
雖然前面說選雅加達是要留復仇的後路,但我其實還是沒啥勁認真練習,就算我大四了很閒但除了日常的比賽以外也沒啥在碰競程,時間很多都拿去看小說了 XD。再加上 syl 感覺很忙所以這學期除了培訓班也沒有再額外團練。至於最後比賽的結果嘛…,算是運氣好歪打正著吧,今年雅加達不知道為什麼沒什麼特別強的隊伍去,所以就沒壓力的拿了冠軍,但跟去年一樣拿冠軍但還沒確定進 WF,要跟 PCkomachi 打架。
所以下一場會是 APAC,不管怎樣至少先拿到了去 APAC 復仇的機會。如果說去年我 APAC 的目標只是為了贏 fruit_advantages 進 WF 的話,那今年我感覺就真的只是為了復仇而已。不過我還是很擔心某種神祕的大賽軟手症又發作,但感覺我現在能做的事情只有想辦法找回對競程的熱誠並試著努力一下。

然後祈禱不要重蹈覆轍