2021 ICPC World Finals(題目暴雷注意)
今年有幸能代表陽明交大和另外兩名隊友(黃克崴、林栢瑋)參加 ICPC 世界決賽,稍微紀錄一下比賽過程。畢竟是世界決賽,一定會受到很大程度關注,直播等等都可以在這個頻道和這個頻道找到。
這篇會放跟比賽過程相關的事情,其他跟比賽無關的流水帳可能會再開另外一篇寫。
World Finals 題目特色
這裡稍微描述一下 World Finals 的出題特色。根據卡車的說法,早期的 World Finals 很容易發生全場八成以上隊伍答對不到四題的情況,但是最近幾年會根據隊伍程度調整難度,變得沒那麼難。最近幾年 World Finals 的難度就比較穩定了,我個人體感是比大部分 Regional 難,但是最難的幾題可能沒有某些 Regional 最難的題目難。值得注意的是 World Finals 不會出簽到題,就算是最簡單的幾題也會有一定的思考或實作難度。
出題方向滿多元的,基本上競程常見的主題都會出現。大部分題目都有一定的實作量,我記得我們賽中的 code 幾乎每題都超過 100 行。
競賽過程
一開場的時候就照慣例三個人一起看題目。一般練習的時候都是我和林栢瑋從前面看,黃克崴從後面看,但是這次黃克崴很反常的從中間開始看 (?),沒辦法我就看完 A 以後接連著去看 L,A 看完以後沒什麼想法,L 題目很複雜沒辦法一次看懂。
大概 10 分鐘過後開始有隊伍 submit H 了。林栢瑋這時候跟我講 H 題目,我心想之前 AtCoder 出過一樣的題目(而且之前被那題揍爛過所以印象很深刻 XDD),林栢瑋就一邊給我 H 想法我一邊回想作法。他寫完的時候我剛好也還原完作法了,傳上去一發 AC。
這時候黃克崴上去寫 C,林栢瑋開發其他題目,我繼續讀 L。黃克崴 C WA 以後就被叫去幫忙重推 C 的式子,他去寫 F 的計幾。這時候我犯了一個很致命的錯是我把 C 的算式推錯了 QQ(好像是少乘一個 $f$),他改了我推出來的式子以後還是 WA QQ。倒是 F 搶到首殺 orz,據說那時候後面有人在拍照但是沒注意。
F 寫完以後林栢瑋上去寫 J,我繼續看 L。這時候我大概看懂 L 在幹嘛了,實作細節也想了大概五成。在這過程中我也看一下其他題目,A 仔細想一下其實就找到梗了,就跟其他兩個講說 A 可作。這時候黃克崴在幹大事(?)開始開 K,在 J 寫完以後就正式開始寫。我這時候大概就已經把 A 跟 L 想完了,K 寫的中途林栢瑋上去寫 A,中途也有稍微寫一下 L。A 其實是兩個題目,他會做第一個但是不會做第二個。這時候我跟他說第二個問題的作法,他照著我的作法寫完以後就過了。這時候我等黃克崴寫完以後上去寫 L,黃克崴這時候就搶到 K 的首殺,強死。
這時候我上去寫 L,其實我已經快沒有 L 的作法的記憶了(只有紙上寫的 pseudo code),就照著 pseudo code 慢慢寫,雖然後面出了一點 bug 但是都沒有挑很久。但是這題的座標轉換特別反常,大概花了 10 分鐘在上面 ==。幸好修完就過了。
這時後大概剩一個小時,C 中途修了很多次但是都沒有結果。沒辦法我只好回去想 C,這時候黃克崴跟我說我一開始給的式子是錯的,並且給我一個新的式子(不太確定那個是不是對的,但是我記得跟我賽後推的有差)。這時候真的沒題目可以寫了,只好黃克崴上去寫 D。我盯著新的式子一點想法都沒有,這時候也不適合再開發新題目了。D 後來好像沒找到 bug,最後 20 min 林栢瑋說可以寫 G 但是也沒結果(後來也發現是假解),比賽就結束了。
結果和檢討
Rank: 28/132
Solved: 6/12
Penalty: 885
以結果來看不算特別差,至少從這個記分板看算還好(如果只看 CF Rating 我們排名大概是 60 左右,在 Asic Pacific 墊底)。但是最後結果算世界前段,Asia Pacific 中段,算是還可以的成績吧。
我後來去看我賽中其他沒看的題目,我發現 B 和 I 其實是我有機會想出來的題目(尤其 I 我算是有找到主要的梗了),但是賽中都沒有仔細去想他們,有點可惜。
如果要檢討的話我首先會先針對 C 推錯式子的問題著手,雖然中間我一度有懷疑過 C 的式子是錯的,但是這時候不夠謹慎,沒有重新回去看題目之類的,去反覆檢查好幾次。賽前沒有注意到這個潛在的問題,之後練習的時候也要更加小心。
接著算是比較小的問題,就是以題目類型來看我應該要去做 A,林栢瑋應該去做 L,這點在題目分配上要更小心一點。如果這兩題寫的人交換的話可能寫出來的速度也會比較快。
最後我覺得還是希望賽中盡量能把所有題目都看過一次,或許能找到很少人寫但是實際上可做的題目(例如 I)。
禮拜六還有一場桃園站 Regional,就好好加油吧!