# 2025TOI初選心得 ## 賽前 ### 真的好緊張 從賽前一個禮拜左右開始,我的身體開始出現各種小毛病。感冒引發的胃食逆流、嘴破、牙齦發炎、痘痘、睡不好之類的東西一起出現,而我很清楚他們為何在這個時候一起到來 - - 我給了我自己很大的壓力。並不是刻意為之,不過我每想到這是我人生中第一場,也是最後一場TOI初選時,我就會感到很緊張,感覺心跳開始加速,並且感受到無形中堆積起的壓力。 甚至可能比學測還緊張。 學測雖然是一場人生中重要的考試,但考不好還有分科;分科考不好也只要半年就可以再重考(至少我是這麼對自己說的),不過初選就這麼一場。就算再怎麼不情願,只要我這次初選燒雞了,我就會因為年級關係永遠沒辦法復仇。 我這一整年的生活重心幾乎都放在資訊上,關注的焦點、做事先後順序的指標幾乎都在為資訊服務。這麼說可能有點傲慢,但我想我不太能夠接受自己在付出如此龐大精力與時間的領域沒有取得一定的成果。 總而言之,初選對我來說是一場非常非常重要的考試,而我必須獲勝。 ### 我不vir題誰vir題 寒假,我把初選考古題刷了一遍,其中近幾年的題目用vir的,結束後我又去把ojuz上的JOI本選寫過一輪。其實我的成績不算很理想:初選我寫了沒被暴雷過的近3年,但是一次都沒有在賽中打到分數線過,不過常常計時結束沒多久就拿到足夠逆轉的大分;本選除了2024有靠喇分拿到300多分以外,其他年份都只有大概230~250不等,總是沒有超過線。 儘管如此,我還是抱持著一些希望。我從打初選考古題的經驗中,發現我缺的可能是一個適合我的策略,因此我就一邊打本選一邊構思、實驗,並修正我的策略,最後得出這樣的結果: :::info 0m~60m: 想辦法把AB開掉 60m~75m: 各花五分鐘看+想CDE,估一下個子題難度和想得出來的機會 75m~90m: 把CDE裡面最有感覺的抓出來爆想 90m~135m: 把爆想題寫掉 135m~160m: 喇剩下的 剩的20m可以根據當下情況決定花在哪 ::: 之後willychan回來回來講初選要怎麼打的時候也有提到事先擬定計畫的重要性,而且告訴我們: > 你要先有一個你會過的計劃嘛,阿你有這個計畫以後在考場裡面只要把這個計劃做完你就會進了。 可能聽起來稍微有點像幹話但我覺得這對我考前維持鎮定幫助蠻大的。 ### 有機會有機會 我不能說我不能說 我考前覺得我會進的機率大概50%,所以就開始問同學要不要賭拉麵然後我賭我沒進,這樣就算我被刷掉可能也不會太難過。Leo在賭之前跑去問pacybwoah他覺得我進的機會大概多少,然後他說他覺得大概60%,聽到他這麼說我覺得還蠻高興的。 ## 比賽當天 比賽是下午一點多開始入場,所以早上我要自己決定要做什麼。基本上這時候做什麼都會感覺怪怪的,就像學測前一天的時候。想了想能做的事,我最後決定去看*轉生公主與天才千金的魔法革命*。雖然之前就已經看過了,但第二次還是覺得蠻好看的,整個人變得沒那麼緊繃,目前有在考慮文化幣要不要買它的小說。~~不知道從什麼時候開始,我的大腦好像已經默認百合番就是一個可以舒緩身心的東西了,之前看莉可麗絲的時候也是想要舒緩心情。~~ ### 入場 到現場的時候看到那麼多人又開始變得有點緊張,畢竟感覺要贏過現場的幾乎所有人好像蠻困難的。不過,我找了個沒人的地方開始聽高橋李依唱的**Stay Alive**和**Door**以後又成功讓心情平復下來,等到入場時間過了五分鐘後我才進去,成功保持建立好的狀態。 原本我以為進場時間離正式測驗有半小時是因為他們有要讓我們測機或幹嘛的,結果完全沒有,白板上還寫說每個人的電腦桌面有"注意事項.pdf",叫我們比賽開始後點進去自己看 :shocked_face_with_exploding_head: 唯一一件工人有利用這段時間做的事是告訴大家水壺可以放到外面的臨時水壺區,這樣去上廁所的時候就可以順便喝水,然後走的時候記得帶,我就跟一群人一起把水壺放在那裡。 ### 賽中 14:00 比賽開始 開賽後我先打開熟悉的codeblocks,建了個檔案,再點開注意事項.pdf,看了兩頁發現它在教我怎麼開codeblocks的檔案,於是快速滑完並關掉,打開題本開始看A。 A是一個classic排序,反正就是把數字對某種數字的性質排列,沒什麼太大問題,馬上開寫。 14:14 A $\color{orange}{WA\ \ 0}$ A的第一發就出bug,讓我有點慌。我把我的code從頭到尾看了一次,然後又看了子題,發現我連最簡單的$a_i \leq 16$都沒過,我就在本地讓他數$1-16$的所有數字並把結果輸出,成功發現我數東西數錯的地方,改完後重新上傳。 14:20 A $\color{orange}{WA \ \ 0}$ 真假?還是錯?我心裡這樣想。我強烈的覺得我自己的code應該要對了。由於我相信我有實作出我想的東西,因此我懷疑自己題目看錯。重看題目後發現我搞錯當兩數字要求的神奇數字一樣的時候接下來要比什麼,我快速改完後上傳。 14:24 A $\color{cyan}{TLE \ \ 44}$ 沙小怎麼會吃TLE?我先隨手加個O3上去,並重丟一次,在等待結果的時候仔細思考為什麼會TLE。我首先檢查有沒有無窮迴圈的可能,然後發現沒有。接著我注意到我寫的複雜度是$O(n\cdot logn\cdot logC)$,我開始懷疑他想要卡掉兩個$log$的解。我好好預處理,把複雜度變成$O(n\cdot(logn+logC))$後,終於成功AC。(我後來才注意到那題的TL只有0.3s) 14:26 A $\color{cyan}{TLE \ \ 44}$ 14:33 A $\color{green}{AC \ \ 100}$ 在我傳A的submission,等待judge時,我有先往pB瞄。在零碎的時間中,我得到的資訊是B不是一個典型演算法題,而且我應該很不會做這種東西。在A AC後,我仔細的把pB的題序讀懂、看完範測,我得到的結論與一開始的想法相同。這時,我已經開始覺得比賽沒什麼希望了,畢竟半個多小時才開掉A,B能不能在一個小時以內AC都不好說。雖然根據我的策略,這時應該要all in時間做B,但是我覺得A做那麼久的時候計畫就已經失敗了,這時候不應該要繼續照著走。當時,我腦袋還冒出cot一直說他去年B寫完剩40分鐘但他根本是先做C才B的訊息,在這些因素下,我決定就先把B放旁邊,直接往下看C。 C是一個大水題。沒有複雜的題序、複雜的實作,或複雜的演算法,基本上有800種方法可以做到滿分。由於我之前很常被雙指針或sliding windows之類的東西嗆,我賽中直接寫了一顆線段樹送給他,實作起來比想像中快很多。 14:42 C $\color{green}{AC \ \ 100}$ 本來這個時候按照戰略,我應該在想辦法做出B,不過現在我已經做出A和C了,反而算是領先進度。這時候我把戰略中的AB換成AC,準備執行剩下的計畫,也就是看BDE。不過我已經看過B也想過了,所以我就直接往DE戳。 D的題敘蠻好懂的,可能是因為他舉例舉得不錯。看完發現有69分好像是簡單dp,當下就直接開寫。 14:48 D $\color{orange}{WA \ \ 0}$ 看到0分已經沒有覺得很震驚了。我把我的code全部重新看一遍,每行都想想看為什麼是這樣然後嘗試說服自己,接著我就發現有個轉移寫錯了。 15:02 D $\color{orange}{WA \ \ 69}$ 順利拿到69分以後我去看E,看完舉手去上廁所+喝水順便想題。我上廁所的時候想過:會不會我拿完269分就過了? 但我馬上認為不會。雖然269分可以在大部分的年份中通過,但像2022年那種超級簡單的年份,線就曾經飆到350左右,而且我覺得這次線會比2022更高,原因是A和C都真的很水,然後我覺得想不出B應該是我的問題,應該其實大部分人都會。有了這樣的想法後,我暫時把對線的預測升到390~400,並且告訴自己還不可以鬆懈。 回到場內過了一段時間後,我注意到當$n=m$的時候其實就等價在求MST邊權和的兩倍。由於是$n\leq 5000$的稠密圖,剛剛pA又被卡常,我決定寫不帶$log$的Prim演算法。我平常寫MST的時候幾乎沒寫過Prim,不過由於它跟Dijkstra真的很像,所以寫起來也不至於太卡。 15:28 E $\color{orange}{WA \ \ 34}$ 注意到有$n\leq 20$的子題,馬上用在練本選時常常拿來喇分的Hamiltonian Path做掉小分。 15:43 E $\color{pink}{RE \ \ 19}$ 我實在沒有很想回去寫B,不過現在DE都只剩很後面的子題,完全沒有感覺快想出來的fu,而且又想到willychan說過所有題目最好都要有分,所以最後還是回去B了。因為被放在很後面才做,我也就沒有很強的一定要做滿分解的執著,於是我開始先想$n=2$的子題。我看了他的範測後,發現那個東西一點用都沒有,所以就自己在旁邊畫了一個鬆餅塔開始觀察。我把我自己代入題目裡,開始想如果是我本人要去處理鬆餅,那我會想怎麼移動他們。後來,我成功想到了一個辦法。 16:15 B $\color{orange}{WA \ \ 0}$ 沒有很意外,因為這題我真的寫很醜,會燒的地方蠻多的。我檢查老半天找不到問題,後來又再構一筆測資才發現有個邊界的地方有機會被不小心多算1,改完以後重新上傳。 16:25 B $\color{orange}{WA \ \ 0}$ 還是WA就有點意外了,我跑去點開測資詳情,發現我錯的是超級後面的測資,所以我猜是我某個小case燒了。我第一個測的是完全不用動的case,然後就猜對了。也懶得改code了,直接加一個特判上傳。 16:30 B $\color{orange}{WA \ \ 37}$ 既然都拿到第二子題了,就看看第一子題在幹嘛。$m=1$代表只要把那些鬆餅排序好就好,寫掉。 16:42 B $\color{orange}{WA \ \ 8}$ 目前分數是100+45+100+69+53=367,感覺蠻危險的,因為連2022的線都有350。我看了看還剩下的子題,思考我應該要砸誰。首先應該排除B,因為我在想的時候對全題真的沒冒出想法,甚至$n=2$的實作就寫的醜到靠北。接下來考慮DE,我D的69分可以過有仰賴一個很重要的性質是「若某格可以作為$size$為$k$的樓梯的右下角,那那格一定也可以作為$size$為$k-1$的樓梯的左下角」。但是D的全題就沒有這件重要的事了,感覺很糟糕,就丟掉。所以最後只剩下還沒被馬上丟掉的E。 E有一個$n\leq 1000$的子題還沒拿,但我真的有點難想像要怎麼把還原出一開始的樹,想了十分鐘還是沒什麼想法,所以就開始賭會不會是要用某種方式鬆弛,然後答案是"最後的邊權和"和"鬆弛掉的邊權和"兩者之間的某種線性組合,結果連範測都一直沒成功,然後時間就到了,我攤在位子上等工人把該收的東西收走,然後一直想這樣到底會不會過。 17:00 比賽結束 ### 完賽 喔對了這時候有發生一件我有點意外的事,就是工人告訴大家可以把附有帳號密碼的題本封面撕下來帶回家,以後會開放下載自己的code。意外的點是初選可能基於有點不想要題目外流之類的原因而不開放帶走題本,可是卻允許大家帶走封面,也沒禁止在封面上劃記,所以就整個有點問號。 被告知可以走了以後,第一件做的事情就是把手機開機,然後看板。雖然擔心自己會沒過,但是我覺得我在賽中真的有把能做的都做完了,就算被卡掉也沒辦法。我第一個點開的是有人在17:00整下載的版本,我往下滑一點點,找到19名,然後看他的分數,是321分! 367>321欸,所以我進了! 知道我進了以後我一邊往外走一邊找我第幾名,接著找所有我認識的人第幾名,在接下來是有聽過但不知道算不算認識的人第幾名$......$ 當下看我是第七名,但其實那時候還有一些submission沒跑完,所以我真正的[排名](https://sorahisa-rank.github.io/oi-toi/2025/ranking/)是第八名。超級開心的! 欸對了,我們是不是忘了什麼? 蛤什麼阿? 我猜你應該忘記了,因為我也忘記了。 ||我的水壺還放在臨時水壺區阿!|| 一個小時候我回到家才想起這件事,我跟家人再折回去找的時候那裡已經被清空了。事後我寫信去資奧辦公室,他們回覆說有撿到,請我找時間過去拿。 ## 賽後 ### 狹義心得 就讀高中以來,總是會聽說很多學長進入了XX選訓營、當了國手、拿了獎牌,很自然的,心裡冒出一個小小的聲音問:那我也可以嗎? 我國中時期不曾往這個方向探索過,高一開學不久就被那些已經在這方面深耕已久的人嚴重嚇到,覺得自己就算現在開始努力也沒機會變得像他們一樣強。就這樣,雖然心底的聲音還沒熄滅,但殘酷的現實讓我無法全心投入競賽數學或物理這樣我深深覺得自己拿不到成果的領域,只會在要考奧林匹亞初選前幾個禮拜稍微看一些資料,練習,然後發現自己不會很多東西也學不完,接著在考試的時候被刷掉。在我高二寒假去考物奧複選後,我就覺得我的奧林匹亞夢結束了。 後來因為[一些原因](https://hackmd.io/TDteznfsTA-kn9yRRRjR_A?view#%E7%AC%AC%E4%B8%80%E6%AC%A1%E6%83%B3%E5%A5%BD%E5%A5%BD%E5%AD%B8C),我開始學coding。起初我對資奧這種聽起來就是一堆巨砲在打的東西是沒什麼想法,也沒有去了解那群人在幹嘛。接著,隨著我越陷越深,開始好奇在APCS以後還有沒有更難、更有挑戰性、聽起來更炫砲的東西可以比,我才去了解資奧的制度。(沒錯,想考資奧的原因之一是聽起來很炫砲) 接著,資訊校內能力賽開打,pacybwoah跟我說我很有機會進校隊,然後我就覺得如果可以當校隊、去北市賽拿個佳作或三等獎我就很滿足了。不過事與願違,我複賽燒雞,被刷掉那時候我的下一個目標就只剩下資奧初選,如果我初選沒過那我這年就只有拿到APCS這個我覺得聽起來不厲害的東西,我不甘心只有這樣,大概是這時候我才有認真想要打進選訓營的願望。 現在我有了。因為選訓營,我可以請超級長公假,然後免費去一個為期兩個禮拜的巨砲營隊認識一堆神人跟聽他們講怪話。我的夢想完成了。 ### 其他 不是阿初選等級的題目跟選訓等級的難度也差太多了吧!昨天去寫JOISC2024day3,想了四個小時然後精神分只有||000||/||052||/||005||,而且因為之前vir很多類初選的比賽,所以我不知不覺中已經變得不習慣想少量題目這麼久了,這樣下去感覺在選訓一定墊底的阿。 然後還有人跟我卡2J請客,說30取12代表我有40%機會可以進,我真的覺得完全不用想。選訓營裡面很扯的人太多了,我的目標是在裡面學一點東西、模考不要打到自己都覺得打的超級爛,然後好好享受裡面的一切就好了。 喔對了,資奧辦公室不知道為啥都還不出名單,害我很難去跑公假和段考免考,阿不就把計分板上的名字copy過去就好了,去年也考完後天就出了。