# 2025 TOI 1J選訓記 ## 前言 難得進來選訓了(人生中第一次也是最後一次),就把裡面發生的事情紀錄一下。沒意外的話應該會蠻流水帳的。 寫這篇文章的目的有幾個: 1. 想讓我自己以後可以回顧 2. 想跟其他人分享我覺得特別的時刻 3. 讓未來對競程、資奧有興趣的人可以一窺選訓生活 那我們就開始吧 ## day 1 表定的報到時間是下午四點半,因為我家也離師大不算遠,所以我很chill的當天早上才整理行李,並打算三點多出門。因為最近在學一直覺得很酷的aliens,pacybwoah就叫我去寫[aliens](https://oj.uz/problem/view/IOI16_aliens)。雖然我已經被暴雷要||做斜率優化 (pooh : 凸包技巧)+aliens優化||了,但還是想超級久dp轉移式。前一天晚上甚至連暴力分都沒拿到,我就想說至少寫完第一個優化的部分再出門。結果大概在兩點左右pacybwoah就問我什麼時候要到,然後說先到可以先duel,也就是兩個人單挑CF題,所以我就直接出門了。 在路上的時候,cot就說今年改成4人一房。前年和去年分別是3人和2人一房,所以聽到當下也蠻錯愕的。 我到的時候地下室已經開放入場了,我就走進去,然後現場就是一堆人在講(怪)話。桌上放了營隊手冊和一些東西,手冊裡有寫房間分配。不知道為什麼,雖然大部分的人是住4人房,但是有兩間兩人房,而我在其中一間,室友是duda。過了一陣子,有個人進來講了一些聽起來很官腔的東西,像是上級很重視這些營隊,所以要遵守規定之類的,然後就發晚餐了。晚餐是漢堡王套餐,每個人會拿到漢堡+小薯+(紅/綠茶)+(雞塊/洋蔥圈)。我拿到那一杯紅茶的時候心裡其實OS這樣我晚上會不會睡不著,不過後來還是喝完了。 晚餐後又是一段自由時間。接著,一個看起來像教授的人進來講一些廢話像是有沒有人不會寫C++之類的,然後問大家有沒有問題要問。然後回答問題的時候還不小心說溜嘴今年模考也會是四題。pooh問說有沒有機會改成三題,然後教授就說有阿只是機會可能是0.000001%。總之教授也蠻會講怪話的。(後來知道他叫Greg Lee,算是TOI的主持人之類的) 雖然本來工作人員說七點要載我們回飯店,不過後來好像是看大家都吃完飯了,就提早到六點四十。回到飯店後其實也不知道要幹嘛,就跟duda聊了一下天,接著他說有人在揪狼人殺,我們就一起過去玩了。 很幸運,我們到的時候剛好現場湊齊12人,可以玩4神4狼4民的標準配置。我們總共玩了三局,然後我除了第一局拿到守衛,剩下都是平民。我第一局表現得不錯,最後關鍵的歸票也精準票出最後一隻狼,不過到後面幾局,我就漸漸開始腦袋打結,再加上有些人的操作比較少見,所以我慢慢開始記不住東西而且沒辦法好好推理。不知道算不算幸運,我每局都活到最後,阿但是到後來真的記不住東西了,所以就整個變得很混沌,但是還是很好玩。 玩完以後回到房間盥洗,準備就寢。因為午餐和晚餐都吃比較少,時間又比我平常睡覺時間還要晚,我的肚子開始暴餓,一直咕咕咕。我晚餐喝的那杯紅茶好像用料很實在,而且枕頭我又睡不習慣,咖啡因和飢餓感直接把我吊在很累但睡不著的困境中,過了很久、換了很多奇怪的姿勢才睡著。 ## day 2 凌晨不知道幾點,我迷迷糊糊地醒了過來。由於我平常的睡眠時間算長,也不太會提早很多醒,我就以為差不多是起床時間了。我摸向手錶一看發現是三點半,就覺得很靠夭,因為我的腦袋已經算是開機了,要睡回去偏難,後來果然花了很久時間才又重新睡著。七點半,我的手機鬧鐘把我叫醒。我爬起身,立刻覺得左手怪怪的,有一種剛做完激烈運動的激烈酸痛感。這也難怪,畢竟我醒來的時候整個身體都是壓在左手上。我去刷牙的時候覺得左手還是很痠,就用熱水冲了一陣子,舒緩不少。 早餐是吃捷絲旅的飯店早餐。我跟duda來到二樓的餐廳入口,有一位服務人員朝我們走來。 duda:我們是311號房 服務人員:@#^%&^&#$^# duda:three one one 然後他就給我們要放在桌上的用餐牌並讓我們入場了,而我直到入場都還沒反應過來剛剛發生了啥。 我因為肚子真的很餓而且我感覺自己身體能量嚴重透支,我就先拿了兩片吐司和奶油和果醬,想快速補充能量。結果那個烤土司機的火力似乎不太夠,奶油丟上去以後抹不太開。我搞了很久才終於把奶油抹得像樣一點,不過等我吃完兩片吐司後,我就發現剩下的時間已經不多了。我急忙前往熱食區夾東西,全部各試了一點以後發現有一種肉超好吃,就在離開前趕緊再吃了兩塊。 吃完早餐後我們走路前往師大。我蠻喜歡這樣的移動方式的,因為這樣很有交遊的感覺,很適合作為一天的開始。 第一節課是wiwiho來跟大家講講話。我最印象深刻的部分是我被嗆爆。 :你們初選B是想不到還是實做不出來啊 :這題只要cdq分治+動態凸包就做完了,但是我被卡記憶體就一直沒過,我就很緊張,因為我知道這題很簡單 :比賽前學新科技就是臨時抱佛腳啦,如果你現在還是要學那就是你的問題。如果你思考能力夠強就不用這些啦 我本來是在處理aliens了,不過聽到以後就覺得還是先不要繼續寫好了。反正1J結束以後有的是時間學怪怪大科技(吧)。 中午的午餐是吃學餐自助餐,每人有120塊的預算。由於餓了很久,早餐也沒吃到特別多,所以我看到什麼最後都想夾,後來夾了蠻多樣的,我本來以為到結帳時會超過120元,不過他秤完以後說剛好120,超爽! 下午的課是線段樹與應用,我還蠻期待的,因為我覺得可能會教個什麼時間線段樹或是李超線段樹之類我還沒有很熟的東西,讓我觀念可以更熟悉,因為他總共有三個小時。出乎意料的是,他總共只講了快一小時,然後就說他講完了,下課。我進入一個疑惑的狀態,觀察一下大家以後就懂了現在是自由活動時間,好欸。 晚餐吃的是校園裡的一間健康餐聽的健康便當,菜很多樣,也不難吃,還有附餐後水果,不過飯量與肉量真的有點不太夠。 吃完飯以後有一群人說要去打籃球,然後又有一堆人說要去看他們打籃球,最後大概有一半的人到了籃球場。啊我不知道為什麼有那麼多人可以同時會寫code還籃球看起來打超好。 回到教室,大家休息一段時間後,我們就被帶回捷絲旅。放完東西以後,我就問owoovo要不要玩我帶來的拉密,我和duda就去owoovo的房間跟他和ianwang湊到四個人玩拉密。玩完一局拉密以後,pooh走進來問要不要去夜市,由於昨天的教訓實在過於慘痛,我立刻決定前往夜市補充糧食。 夜市賣的品項種類其實不算多,像是烤香腸就沒印象看到有人賣。我最後在一攤買了炸雞排和炸魷魚回到owoovo房間吃。吃的過程中進來房間的人數慢慢增加。guagua一開始就在房間內了,接著korean_fish和windleaf一起出現,後來是pyt和bocheng,然後darren也來了。可能還有一些我忘記的人抱歉,不過我記得最後有破十個人,然後我們其中四個又開了第二把拉密。 玩完拉密就接近晚點名時間了,因此我們便解散,各自回房。 ## day 3 我睡到7:30才被鬧鐘叫醒,醒了之前還在做一個奇怪的夢,反正睡的超級好,果然肚子餓+紅茶真的殺傷力太大。 起床以後一樣去二樓吃早餐。我本來以為可以再吃到昨天那個好吃的肉,結果它消失了,換成一個我不喜歡的東西,薯條也不見了,變成比較普通的雞塊(昨天薯條配上他獨家香料超好吃),反正整個就變比較還好。 今天早上和下午的課都是蔡孟宗講的。蔡孟宗是pooh的專題教授,然後被8個人稱讚過課很有料,wiwiho還說他的課可能是選訓營少數值得聽的。啊我一整天的心得是他真的很有料,教的東西不太需要什麼先備知識就能聽,帶的東西也都很有趣。不過因為我的睡眠時長小於平時狀態,再加上我很愛喝水->沒辦法連續聽三小時的課不去廁所,所以早上和下午的課都是聽到後來就沒跟上了,不過真的感覺很棒。由於昨天wiwiho說只要有在練習思考,刷多少題其實也沒有到真的很重要,於是我一整天就專心聽他上課然後想他在課上講的東西。 至於食物方面,午餐還是吃自助餐,晚餐是4:50左右帶我們去吃類學餐的水餃。因為我真的不想再有機會餓肚子睡覺了,我就要了一些多的水餃,希望今天也能好好睡覺。 七點到八點是體育課,我們被帶到籃球場,然後由師大體育系的學生帶活動。一開始我們先跑了三圈籃球場,然後接下來兩兩一組battle,battle規則如下:兩個人要在時間內想辦法摸到對方的膝蓋以下部分,摸到一次一分,然後不能用手檔對方的手,也不能抓住對方的任何部位。這玩起來真的超累的。我跟我的對手好像都蠻會閃的,所以我們第一輪是0:0,到第二輪我真的超累以後才被他拿到一分。 接下來是傳球鬼抓人:在一定的場地內,有大概一半的人是鬼,鬼要抓人,而且有一顆籃球會在鬼之間被傳來傳去。鬼如果要抓一個人,他要持球觸碰那個人,這樣就算抓到。鬼在有持球的時候需要遵守籃球的走步規則,且不能運球。這可能本來應該也要是超級類的活動,但是前半場我們的鬼一直不小心傳球傳出去,大家就等他們撿球,所以有很多休息時間,而下半場我用尿遁法幾乎避開了整段時間。 去上廁所的時候是由一個輔導員帶我去的,在路上他就跟我聊天,講到我為什麼高二會開始學程式。 我:那時候我本來幾乎整天都在打電動,就想說這樣好像怪怪的 輔導員:對阿你也知道 我:(被嗆) 喔對了今天還有一件很酷的事情就是,在休息時間,有一群人在揪戳CF *800的題目,然後只能看測資。兩個人比賽看誰先寫出來。由於CF很多實作超簡潔的梗題,所以這個遊戲玩起來其實還不錯,也常常在有人AC後大家去看題目,一起研究為什麼這樣會對。 回飯店後,browntoad、guagua、pacybwoah來我們房間找我們duel,然後iantsai則是線上用語音參加。duel的內容是一樣是去CF上戳題大家比速度,不過這次可以看題目了。每個人依照寫出來的順序依序可以在那題得到6~1分,然後每題有個權重,分數成全種的和就是總分。題目有 *800、 *1000、 *1200、 *1400、 *1600、 *1800共六題,我們今天只寫了前三題。寫的過程中我覺得蠻有意思的點是,平常打atcoder的時候,雖然有記分板,可以知道誰拿到在什麼時候得到多少分,但是卻沒辦法知道每個人在做題的時候的想法。今天看到一些我覺得超強的人也會卡很水的題目,或是抱怨題目很爛,就覺得蠻新奇的。 ## day 4 可以讓我寫日記的時間越來越少了,所以我打算放棄流水帳的形式,只挑幾個比較有意思的事件紀錄。 ### 小月老師 在某節下課我去上廁所的時候,我忘記把筆電休眠,然後就被盜dc帳了。有人用我的帳號去某個可以跟別人單挑CF的伺服器@dreamoon邀請他duel *80000的題目。當然,CF上根本沒有這麼高rating的題目,所以什麼事情都沒發生,不過我回來發現以後還是傳了個訊息跟dreamoon解釋說我被盜帳請他不要介意被tag。 幾個小時之後,dreamoon什麼都沒說,只是突然上線,並邀請我duel *800的題目,然後一堆人看到。大家開始圍繞在我的電腦旁邊,叫我先打好一些模板再接受邀請。我打了 ```cpp=1 void solve(){ } int main(){ int t; cin >> t; while(t--) solve(); } ``` 以後就回去接受了dreamoon的邀請。題目總共有4個int的輸入,並且我要回答yes/no。我英文不好,不過很快我旁邊就有人說只要判斷是不是4個int完全相同就好了,我聽了就馬上開始寫。由於要拚速度,我就不開什麼陣列之類的了,把握住4是一個很小的數字,把迴圈甚麼的放棄掉。 ```cpp=1 void solve(){ int a, b, c, d; cin >> a >> b >> c >> d; cout << (a==b&&b==c&&c==d ? "Yes\n" : "No\n"); } ``` 寫完AC後我馬上去看status,發現dreamoon還沒寫完,所以我贏dreamoon了,好欸(雖然大開外掛)! 接著旁邊又有人說要再一題,然後說戳個 *2500。我就邀請他duel *2500,而他也接受了。這題難度很高,就算想出來了要實作也不容易。我們一群人開始討論,後來變成pacybwoah說想法然後pooh實作。過了一陣子,dreamoon就AC了,這時不確定是有出bug還是有case漏判,反正我們的code還是有問題的,因此就由dreamoon拿下這場比賽的勝利。真不愧是有在開班的,想題能力跟實作能力都超強。 我本來以為他打贏以後會說什麼`欸這題是我們level2課程的習題,是還蠻基礎的題目,你要不要考慮來我們這裡上課補全一下基礎能力`,結果他什麼都沒說就走了。 ### 種馬大賽round2 繼昨天的的大戰後,我們今天聚集了dnda、duda、browntoad、guagua、pacybwoah、bochenghuang、ianwang、iantsai進行第二次的戳題比手速大賽。browntaod真的是題王,常常我們戳了一題以後他就馬上說他做過,我們就會再開下一題。 在比賽開始前有發生一件事,就是橘子和臨末混入捷絲旅,跑去找跟他們比較熟的TOI裡面的女生,跟他們一起到某個男生房間玩狼人殺。||好像是因為這樣,pyt放鳥pacybwoah的夜市邀約五分鐘。||在種馬大賽開始前夕,我們接到消息說輔導員在查房的時候抓到他們,然後混入旅館當然是NG,另外他們覺得到異性房間玩遊戲也是NG,因此約談了橘子和臨末。我們一群人就開始說要不要在dc上問說揪709(輔導員房號),最後決定比賽第一題寫最慢的要去發這個訊息,然後大家就突然對比賽超認真&超緊張。 因為是水題,大部分的人都秒殺,而我、pacybwoah跟bocheng則因為看錯題目而陷入膠著情況。pacybwoah先AC了,我越來越緊張,火力全開後終於倒數第二個AC,最後結果就是bocheng去發訊息,然後大家都笑得超開心。 可能是因為我們真的太吵了,隔壁房的房客捶了房間牆壁三次抗議,我們才稍微安靜下來。 ### zzz 今天上課到一伴我發現自己的精神實在嚴重不足,沒辦法好好想題或聽課,然後就會一直想要做打電動或滑沒意義東西之類的低精神消耗活動。 在電動的daily time limit到了以後,我查覺到自己打電動的動機是精神很差沒辦法做更高耗能的事情,而不是單純想休息或想打電動。我認為這是一個警訊,因為這種狀態下很容易陷入`精神低落<->只有辦法打電動`的惡性循環,因此我直接在課堂上開睡。 睡了半小時左右,下課時間到了,然後我也醒過來,感覺精神好很多(然後就發生dreamoon那件事情)。平常我是不會白天睡覺的,因此我再次警覺到我目前的睡眠問題。 由於八點半左右才會回到飯店,而且如果不去夜市買東西吃就幾乎注定要餓肚子睡覺(晚餐超級早吃,量也不多),所以得去採買。採買回來後要吃,然後要打種馬大賽,打完要洗澡,洗完澡整理心得,再刷牙睡覺。昨天我的睡覺時間是00:30,今天看起來可能會暴到01:30,可是早上7:30就要起床,所以很燒雞。 燒雞的其中一個方面是我的視力。我平常的近視是靠角膜塑型片壓著的,在我睡覺時間縮短的狀況下,它的效果會減弱,我已經開始感受到這件事情了。再來,我白天會精神很差,效率就也很差,可能會是精神好的時候的1/3~1/4倍。我目前想到的解決方法就是白天多找時間睡覺,因為如果精神不好卻一直撐在那裡,也很容易進入腦袋放空or做沒意義的事情的狀態,所以不如犧牲一點時間,換取其他時間更好的效率。至於近視的部分,我目前還沒想到什麼解決辦法,就之後再看看吧。 ## day 5 今天幾乎是個平常的一天。普通的起床、吃早餐、上課、聽別人講怪話、看同學表演絕活。不過,一切在回到飯店後變得混沌起來。 ### 對衣服太naive 我帶的衣服穿完了,所以我要去飯店的自助洗衣區洗衣服。在這之前,我雖然有在家裡洗過衣服,但是對要操作不熟悉的洗衣粉、洗衣機和烘衣機還是感到有點緊張(緊張的標準好奇怪)。 我問ianwang洗衣服有沒有什麼要注意的地方,他就跟我講說在回到飯店後最好趕快下去B1洗,還特別強調要跑很快。回到飯店後,我放棄了夜市,以我覺得很快的速度把髒衣服拿到B1,卻看到兩台洗衣機都已經有人用了,甚至兩台洗衣機前面還各放著一袋衣服,看起來是有人在排隊。我在群組聯絡到了排在我前面的人,而他洗好的時候已經十點了。我十點下去把衣服丟進去洗衣機,然後研究了很久洗衣粉到底要直接加進去還是放在旁邊的某個溝槽裡,最後我想說在家的時候洗衣精都是直接加進去的,那洗衣粉應該也差不多吧,所以就把全部粉都一起加進去,並讓它開始洗。 我洗完的時候是快十一點,我下到B1,發現烘衣機最快還要一個小時才能用。我怕在這期間有人要用洗衣機,所以我就先把衣服拿出來暫時放到旁邊的籃子裡面,然後開始等待。我想說在等的時候可以跟同學打個傳說,不過在有室友的情況下就不太能在這種時候語音,所以我就帶著手機來到了一樓大廳,跟同學開始語音打傳說。 時間過得很快,已經十二點多了(但是現在能然算day5 因為我還沒去睡覺),我來到地下室,果然已經有烘衣機可以用了。pacybwoah說他烘一個半小時衣服就幾乎會乾,因此我就設定了一個半小時,然後繼續在大廳打傳說,計畫著兩點左右把衣服處理完回房間睡覺。 我剛來到大廳語音的時候,只有我跟櫃台先生兩個人,非常安靜。我一開始想說在這裡語音不知道會不會打擾到他,後來想想說不定他一個人守在櫃台又不能睡覺也很無聊,所以他應該也不會介意我在那邊講話。 時間來到兩點,我跟Steven結束最後一把,他要去睡覺了,而我也心想事情終於結束了,來到地下室拿衣服。然而,我一打開烘衣機,手探入洞口要把衣服拿出來時,掌心傳來的回饋卻是一片潮濕,完全不像有被烘過的衣服,更不可能直接收起來或拿來穿。我不想要再等幾個小時了,所以我開始思考現在該怎麼辦。我思考過把衣服拿回房間晾,但馬上想到房間裡面衣架數量不夠,通風應該也不夠好,能不能晾乾不好說。想來想去,最後抵擋不住睡意,決定再把衣服丟回去烘,然後隔天早上再來拿,因此我就在轉了最高烘乾時間-三個小時之後,回到房間開始睡覺,並告訴自己明天要早點起來去拿衣服。 ## day 6 鬧鐘響起,我猛然從床上坐起,全速趕往地下室拿衣服。我到的時候,昨天我使用的烘衣機正在運轉,而我的衣服已經被人裝進放在那裡的某個塑膠袋裡面了。那個塑膠袋不是我的,我也不知道是誰的,不過也不重要。我趕快把手伸進去塑膠袋中朝我的衣服翻了翻,發現他們竟然全部都乾燥完了,好欸!我把塑膠袋留在原地,用那裡的籃子把衣服裝回房間,最後再把籃子拿回地下室。就這樣,我在捷絲旅第一次的洗衣服體驗結束了。 ### JOISC 2025 day2 今天早上十點有JOISC,也就是日本的選訓模考可以打。日本的模考會在網路上公開題目,還會把題目翻譯成英文,並準備judge讓世界各地的人可以在跟日本人差不多的時間參加。由於明天就是台灣的一模了,我打算參加這場比賽當作練習。 由於連續好幾天的睡眠不足,以及昨天的糟糕作息,我超級超級想睡覺,一走到教室,我就馬上趴下,戴上耳機,開始睡覺。我已經不在乎什麼對教授尊不尊重或者這個教授的平常成績計算方式了,老子要睡覺。 神奇的是,我在9:57分醒來,也就是我快睡一個小時,然後JOISC準備開始的時間。我馬上喝了點水,把自己弄醒,開始打JOISC。總體來說,我打得蠻爛的,在比賽三個小時後我好好想了感覺比較簡單的A和C,但是都沒什麼成果。B感覺就很複雜,不過我還是自己畫了一點東西觀察了一下。觀察了大概十分鐘,我就放棄了。由於前面真的什麼都沒想到,想要騙的分也沒騙到,然後現在B想不到,然後還很想睡覺,整個有點down,然後我就自暴自棄drop掉這場比賽了。 決定要drop完以後,我帶著要斬斷自己可能會突然想假裝認真就又帶著超差的狀態回去繼續vir的念頭,我跑去戳了記分板,讓自己沒有回頭路,捷過發生根昨天差不多的事情:今天大部分人都把B做出來了,而我又判斷錯誤難度,把這題放到沒心態的時候才開始好好想。 看到這麼多人會做B,我就回去開始認真想要怎麼做。過了可能20分鐘吧,我就想到了可以拿到64分的做法,超神奇的。這個時候大家的計時剛好結束,就一堆人去外面討論,我就也去外面聽B的做法。聽了做法後我覺得這樣想到好像有點難,不過不像其他題目,聽完解的念頭只有聽不懂或怎麼可能想的到。明天要模考了,希望我明天可以正確判斷出難度排序然後把時間砸在對的地方。 ### ABC398 Atcoder Beginner Contest是我常常有在參加的比賽,就算是模考前一天,我還是想打。由於上次倒立開題的時候意外沒有掉分,但我想說既然我都已經做好倒立要被扣分的準備了,就繼續倒立直到掉分吧,所以今天就繼續從F開始做。 今天的F是一題字串題,只要好好hash就會過了。如果你比較厲害,那寫個KMP或manacher也可以過,不過我都不會,所以就開始寫hash。 hash寫完以後,我在本地跑了範測,全對。雖然實作的時間沒有像上次那麼短,不過應該還可以接受吧,我帶著這樣的心情丟了我的code上去atcoder。  超怪,竟然連範測都全WA。我覺得問題出在一些未定義行為,像是我可能其實不小心戳到陣列外面,不過本地剛好有對之類的。我開始持續修改一些我覺得有可能出錯的地方,並且持續上傳,因為我不管怎麼在本機跑都會對。 然而,經過我持續的嘗試,我的WA還是沒有消失。在比賽時間已經快結束的時候,我發現了卡了我8年的智障code: ```cpp // s is a string // I want to skip s[0] and output the remaining part for(int i=1 ; i<=s.size() ; i++) cout << s[i]; ``` 相信大家應該可以看出來問題出在哪裡以及為什麼我在本地跑看起來都對但是在judge上卻是WA了。 最後,我剩下15分鐘。我從C開始寫,但是他的題目我看不懂,我就隨便猜了一種可能的解讀,然後把code趕出來上傳。在等待的同時,我繼續往B和A寫。 AB寫完後,我發現C吃WA,我又再回去重新試著搞懂他,瞪著他一段時間後,我終於搞懂他想幹嘛了。這時候時間剩下最後一分鐘,dnda火力全開,把code改完後上傳$\dots$  在比賽結束後的14秒,我的code拿到了AC,但是我也經失去那350分了。最後,我被扣了60分,以我這樣玩火的開題方式和耍笨的程度來說,這樣可能已經算少了。至於下次會怎麼開題呢? 我覺得我還是很有可能會繼續從F開始寫:smile: ## day 7 兩個階段的選訓營各有兩次模擬考,模擬考的成績幾乎可以決定誰可以進2J和誰可以當國手。模擬考理論上是模擬IOI的風格,所以成績才會做為國手選拔依據,不過IOI都是5小時3題,而模考是5小時4題,就超級奇怪。 ### 一模 早上在飯店的時候,duda問我會不會緊張,我告訴他幾乎不會,因為我對於我已經有1J就很滿足了,也認識很多我覺得不可能打贏的人,所以也不會期待自己可以進2J,對模考的成績也不會太在意。我從初選結束以後就一直認真這麼認為。 表定的考試時間是10:00~15:00,中間不休息,不過考生可以暫時去考場外休息、飲食。之所以特別強調是表定時間是因為,根據其他人的說法,模考常常因為不明原因延期,每次幾分鐘到幾小時不等,而且他們都會在快要開始的時候才會跟大家說考試延期。 從飯店走到師大後,pacybwoah直接問輔導員說這模考會延期多久,然後輔導員就一臉疑惑地說「蛤?我沒聽說要延期阿」,超好笑。 接著我們有一群人一起去了校門口的7-11買等一下考試要吃的零食。有很多人都買健達繽紛樂,看到買兩條有打折,我就也跟著買了兩條。除此之外,我還多買了一罐檸檬口味的C&C汽水,做為等一下可以快速補充血糖的手段。 開賽後,我快速的將題本閱讀一遍。由於前幾天打JOISC的時候我都沒看出到底哪題是簡單題,然後我超級怕模考也發生這種只有一題可做題然後我沒看出來的狀況,所以我的目標是趕快看完題目,然後找出比較有感覺的題目想。 然而,題本越看越覺得奇怪。A看完以後,雖然沒有認真想,但就是還蠻有感覺的,應該等一下砸時間做一點觀察就可以蠻高分的,等一下沒意外就是做A,我想。但是看完B以後,我又覺得B好像很可做。因為之前的策略設定,我沒有馬上開始寫任何一題,而是繼續往下看題。C看完以後我又覺得好像可做,甚至dp式都已經自動出現在腦子裡了,因為這根本跟我校內複賽被嗆那題超級像。最後看到D,雖然我有耐心的把題目看完,不過真的看起來超級複雜,而且很沒感覺。由於前面已經有3題感覺有料的題目,我就也沒想5分鐘再離開了。 這時候大概是開賽半小時,我開始好好觀察A。首先我發現如果我要從一個點往右下走走到另一個點,那我一定是要先往下走,走完再往右走會最好。因此,如果沒有要收集任何石頭,我走的路線就會是一個大寫L型。我計算這條路線的cost了以後發現,題目給的$N*(N-1)$會剛好把cost抵銷。我注意到這點時,由於實在太過湊巧,我覺得我快做完了。下一個觀察的東西是,如果我在路線上要拿一顆石頭,那那顆石頭會造成多大的負擔,算出來是很簡單的$2xy$。我接著又計算加入第二顆石頭的時候造成的負擔,推出$2(\Delta x)y$,其中$\Delta x$是第二顆石頭與上一顆石頭的$x$座標差。 有了這些觀察後就會發現,當我要撿一顆石頭的時候,如果我可以把它加入撿之前某一顆石頭到終點這條路線中時,造成的cost可以變小,也就是我要盡量把石頭放在現在已經有的某條路線最後一顆石頭到終點中間。現在要解決的問題是,如果有兩顆石頭想要同一個前置點,那我要把前置點給誰。把兩種方法造成的負擔列出來後,發現要給$y$比較大的人,因此就有了以下算法: > 開一個multiset $s$。 > 把所有點排序,$y$大的優先,相同時$x$小的優先。 > 對於每個遇到的點$P$: > $\quad\quad$如果$s$裡面沒有$\le P_x$的數值,在$s$中加入$0$ > $\quad\quad$把$\le P_x$且在$s$中最大的叫做$pre_x$ > $\quad\quad$把$ans+=2(P_x-pre_x)y$ > $\quad\quad$把$pre_x$移出$s$,把$P_x$加入$s$ > $ans$即為答案 寫完code上傳後,拿到$WA$,連一定可以一次走完的subtask都沒過。我不知道是我唬爛失敗或是我寫爛,反正我決定先寫可以暴力做出走一條路的解法,然後random小測資讓兩分code對拍。走一條路很好寫,一下就結束了。對拍後,拿到可以讓我的code出錯的測資,那debug就很簡單了。亂輸出一堆東西以後發現我某個地方忘記寫把東西推進$s$裡面,加完後重新上傳,上傳成功後我就出去上廁所+喝飲料。 回來以後,看到我$AC$了,超級開心。接下來我往B看,一開始沒什麼頭緒,我就往子題戳,想了一些看起來比較簡單的子題後,就發現我的想法完全可以用在整題,然後我就直接寫,一發$AC$,再去上廁所,順便吃了一顆TOI準備的金莎。 接下來是C。C顯然是dp題,題目有$N, M, NM\le 160000$,而且感覺就不太可能避免$NM^2$量級的狀態數,也就是說我只要轉移快一點就好。我注意到有兩個子題是$N\le 400$且$M\le 400$,其中一個有附帶額外條件。如果naive轉移的話需要花$O(M)$,必須壓掉。我想到segtree和sparse table都可以把它壓成$log$,考慮到我segtree寫比較熟,我決定先寫segtree。 由於這次是把segtree壓在二維陣列的其中一維上,寫起來跟平常不太一樣,實作花了不少時間,傳完以後拿到$TLE$。那時候我還不知道是被卡常,還以為是我不小心寫出無窮迴圈之類的東西,然後一直找哪裡寫爛都找不到。過了好一陣子,我才終於意識到我的$TLE$是被卡常,然後開始試著常數優化,不過都還是$TLE$,這個時候我就決定寫sparse table,還是想要拿這兩個子題。因為我寫sparse table的次數不多,再加上前面講到的原因,我sparse table又寫了很久。終於寫出來以後,我上傳code,還是TLE。又不死心的常數優化了一陣子,最後終於妥協先拿有附帶額外條件的那個子題。 拿完以後我發現時間剩下大概40分鐘,我應該要開始拿比較前面的幾個$N=2$的子題了。本來我沒想清楚,以為$N=2$的隨便寫都會過,結果我完全想錯,忘記這個時候$M$可以開到很大。我發現其實這幾個subtask沒有想像中那麼簡單,開始試著冷靜下來,好好想做法。寫到一半的時候發現,這個實作真的有點複雜,感覺有機會寫不完,於是先拿了$N=1$的subtask。最後,比賽結束前夕我勉強寫完了,不過出了bug,找不到。最後的三分鐘左右,bug沒de出來,33分消失 :cry: 大家填完邪惡表格後,我跟2J線差了40分左右。我突然好氣,好想進2J,開始懊惱為什麼33分沒喇到,對自己沒想到可以單調隊列優化就可以把$logM$丟掉就不會被卡常了,如果這些有拿到,我就在2J線上了$\dots$ 不過不是只有我燒雞。有人看錯C題目被卡很久,有人A被哽到,也有人在某些地方被卡$log$之類的,而面對這樣的狀況,大家的態度也不同。我自認為沒有表現得很激烈,但不知道為何,一模結束後,我心中燃起了想進2J的渴望。 ### 小火鍋 模考結束後的晚餐是小火鍋,在校外吃,預算從平常的120變成240。火鍋還不錯,雖然空間有點小。內用可以白飯吃到飽,我覺得很開心,因為這幾天的晚餐份量都不多,就算晚上有再吃其他東西睡覺的時候還是有可能會肚子餓。我吃了四碗白飯,心滿意足的回到飯店。平常我們不會這麼早回來,但因為今天晚餐是在校外吃,吃完沒有要再回教室,所以早了快兩個小時到。有賴於美好的晚間行程安排,我睡的超級好,好好休息了一天。 ## day 8 今天幾乎沒發生什麼特別的事,除了owoovo推薦大家看金牌得主,然後我、leolin、cot約好晚上來一起看以外。 ### 金牌得主 我們在晚點名後來到owoovo房間,用他的disney一起看正版的金牌得主。故事內容大概是在講有一個很想要學滑冰的女生追逐夢想的故事,不知道是我太敏感還是怎樣,看第一集的時候就常常拿自己對號入座,什麼`人家都6歲就開始學了,妳11歲太晚了`、`在校成績這麼差還想做課外活動`,或是`我想要變得像那些強者一樣`,又或者是`我總是感覺自己永遠追不上那些比我早起步的人`,總之就有一直被戳到的感覺。 除此之外,我覺得這部作品有好好利用自己身為改編動畫這個載體的優勢,把他們在滑冰時的帥氣表露無遺。雖然我目前還只看兩集,不過我應該會把它看完,因為我目前真的覺得很有料。 ### 題外話-二次元的載體 我是一個有在接觸二次元的人,當然也看過一些漫改、輕改、電影改編,或者原創的動畫,有時也會連原作一起補完。在各大論壇上,有時候會看到有人說類似`有些輕改/漫改動畫會好看是因為原作本身好看,而有些是因為動畫做得很好`之類的話,不過我很晚才懂這句話是什麼意思。我第一次覺得「這個動畫做得好好喔」是我一兩年前看無職轉生動畫的時候。我有看過無職轉生的原作,也覺得非常好看,不過看動畫時還是有被驚艷到,而且我知道有很大一部份是動畫製作組的功勞。雖然說不上來哪裡好,但整體看起來就是很流暢、很舒服。 接下來再次有看動畫的時候感覺到動畫這個載體的優勢時,是最近在看新海誠的你的名字的時候。我比較奇怪,一開始是先看你的名字的小說,後來才去補電影的。在看小說的時候,最後一幕的時間線有點複雜,畢竟是時空交錯的邊緣,小說沒辦法一直告訴讀者線在這句話是在哪個時空(或是讀者應該要自己知道),不過電影就可以在人物出現時給他一個新系守湖或舊系守湖的背景,整體容易理解很多。當然,有其他很多場景也是電影表現的更出色。 相比之下,看小說的時候就能大量看到角色內心的聲音,對人物的理解會比較透徹,比較能夠看懂他們的每個行動。新海城說他的小說只是電影的補充讀物,但我認為兩者相輔相成,小說的重要性並沒有比電影來的少。 我有一段時期認為原作小說一定比輕改動畫好,不過在接觸的東西越來越多以後,我逐漸能夠欣賞各種載體的優勢,並從不同角度欣賞同一個故事。 ## day 9 ### 體育課3 今天又有體育課,而且活動比之前累很多。在上課到一半的時候,同學跟我說旁邊的陰影裡有躲人。我看了很久才勉強在某根柱子後面發現一點身影,後來才知道那是browntoad,而且duda和ianwang也躲在隔壁的柱子後面。那邊是運動場的死角,幾乎沒有光線,配合上他們的深色外套和柱子,真的非常難發現有躲人。就這樣,他們在那裡躲了整節課。 在上課期間我有想過要不要也躲進去,這樣就不用很累了。不過我後來想說其實可以在選訓營裡上體育課應該也算是蠻難得的體驗,我也沒有累到真的動不了的那種,動一動也對身體比較好,所以就打消了這個念頭。畢竟,還會有人叫你去運動的時間可能也不算很多了。 ## day 10 ### 種馬大賽3 由於種馬大賽2還沒比完大家就回家睡覺了,因此我們相約今天來繼續完成比賽。先暴雷結局,雖然大家今天很早就集合了,也剛好有人頂替沒來的guagua的位置,但最後我們只多做了兩題。 第一題是一個很奇怪的greedy,超像CSES的sorting ans searching會出現的那種題目,複雜度可以做到什麼$O((n+k)\cdot (logn+logk))$之類的,不過他$n$, $k$都只開到1000,就很詭異。這題結束以後,我們戳到一題把一部分人拖住的[非典型](https://codeforces.com/contest/1617/problem/D1),而我也是被困住的其中一人。我想了很久很久才發現我的目標是找到兩個不同身分的人,接下來就可以花$n$次操作確認完所有人的身分。又過了一段時間,我想到了一個感覺可行的方法,就開始實作,結果WA on test1。 仔細算算我的query次數,就發現worst cast是$\frac{4n}{3} +9$之類的,而題目要求的是$\le 2n$,也就是我在小case會燒雞。我開始努力想到底要怎麼壓掉那個$9$,但是怎麼樣都想不到。我開始亂嘗試,然後就變成這樣了:  反正就是我一直沒有解決這題,然後大家就開始等我,真的非常不好意思,但我那時候還是想把它想出來。到了十一點半左右,我還是沒有成功,大家就各自回房間盥洗了。我在洗澡的時候還是一直想一直想,後來想到某個大判case但還是失敗。我睡覺的時候躺在床上繼續想,我突然覺得題目要求$2n$而不是$\frac{4n}{3}+const$超級奇怪,所以就開始想$2n$的做法,然後過沒多久就想到了,我的那個$+9$也可以用我想到的方法壓到足夠小。第二天一早到教室,我就把想到的東西寫掉,順利$AC$。 ### 砸judge 在我還在想那題,而大家在等我的時候,我們一群人自然的聊起天來,後來聊到allen在一模砸judge的事情。他在最後幾分鐘的時候,把他的50發submission全部用完,用大量成功率極低的random把judge癱瘓,讓其他人在最後的時間沒辦法得到full-feedback。大家對這件事情的看法幾乎都是不太認同,覺得用非常爛(本人也這麼認為)的random去砸judge很不好。 然而,在場有一個人覺得這樣做沒什麼問題。他說就算只有$\frac{1}{n!}$的機率,試試看能不能賽到當然沒問題,甚至表示如果他二模破台的話,他會在最後把judge砸爆,盡可能壓低其他人的分數。根據他的說法,這樣做對他來說不會有壞處,只會有好處,50筆submission是可以利用的資源,如果不用完很可惜。 聽他講完的當下,大部分人看起來都不太贊同,不過當下沒有人出聲反駁他。我也覺得這樣不太對,但我第一時間並沒有整理清楚自己的思緒,將一團亂的想法整理好後輸出。然而,我覺得我現在想清楚了。 他說的沒錯,單看一場模考的結果,這樣的行為確實不會為他帶來損失,對於一個不會有損失的操作,我們盡可能的執行多次不會讓結果較差。可是,我們以這樣greedy的策略對待周遭的人時,長久來看很可能並不是最佳策略。 在1J選訓營中,30個人要競爭12個2J名額,不過大家仍然感情很好,平時交流各種技術時也不會對他人吝嗇,這是我認為很難得可貴的風氣。這簡直像是囚徒困境中,囚犯們達到了彼此互相合作的均衡,不論最終的考試結果如何,大家的知識、視野,以至於其他層面,都在交流中導入了一流活水。不只是選訓營中,我在資訊圈裡真的感覺到很多友善互助的氣息。在我剛入門時受到很多人直接或間接的幫助,現在我也盡我所能,多留下一些可能可以為以後的人滿足好奇心或甚至提供幫助的資訊。 既然如此,我們何必為了把別人卡掉而去砸judge呢?大家各憑本事,在模考使出全力,專心享受比賽的刺激,這樣不好嗎?我們都懷抱著想好好享受營隊與比賽的渴望聚集於一地,不必為了那連用渺茫都難以形容的得分機會去破壞別人瀕臨極限揮灑下的汗水。 當然,我不是什麼很有影響力的人,這也可能只是我過分天真幼稚的想法,不過,就算用很現實很現實的角度去考慮,我還是不覺得砸judge是利大於弊。這個圈子這麼小,以後大家還是很有可能在不同的地方再度相遇。來選訓營就是一個交朋友、拓展人脈的好機會,現在讓大家對你留下的印象是「那個砸judge的人」,是一件蠻可惜的事情吧。 ## day 11 ### 體育課4 這是最後一堂體育課了。我帶著一些捨不得與感傷混和在一起的心情這麼想著,然而,這些很快就被兩個禮拜以來最硬,也可能是我這輩子上過最硬的體育課暫時壓了過去。 一開場的第一個活動就是慢跑1200。我不是體力很好的人,平常也沒什麼在運動,通常測完1600就會氣喘吁吁,要休息非常久才會恢復,隔天還會肌肉痠痛。跑個1600就這樣了,我沒辦法想像跑1200以後還要上半小時體育課會有多累。 跑完1200、休息完以後,我們開始繞著籃球場鴨子走路。在過程中,老師一吹哨子我們就要跑往球場中搶事先散布好的溜冰角錐,沒搶到的人要再額外波比跳。由於心思都放在他有沒有要吹哨子上,做體能的時候反而不會很累。 接下來是2v2的體能遊戲。四個人要像棒式那樣撐在地板上,同時用手和放在地上的溜冰角錐玩桌上曲棍球,被得分的一方要開合跳。 就在已經快沒力的時候,最後一個活動開始了。我們被分成五組,五組的陣地形成一個正五邊形,每個陣地一開始都有一些溜冰角錐。規則簡單暴力:每組每次一個人可以跑去其他陣地拿走一個角錐回來自己陣地,時間結束以後有最多角錐的小組獲勝。 可能是因為我們這組的人都已經很累了,又不知道為什麼被左右兩組圍毆,結束的時候我們的角錐數量大概剩下不到三分之一,是最後一名。這時,老師叫每個小組派一個人到中間抽籤,其中有四支籤是某種體能,其中一支籤是大獎,也就是休息。大家按照名次抽籤,第一名先抽,我們最後抽,結果,被留到最後的籤竟然是  超級爽的!我這個已經累到極點的人看到這張籤的時候簡直開心到翻過去。~~收完角錐後,看著別人疲勞的做體能,發現不是只有自己一個人很累的時候其實還蠻有趣的。~~ ### 要結束了 體育課結束後,我們回到飯店,這時我腦中又冒出之前的那個念頭:1J剩下沒幾天了。回顧四堂體育課,第一次的時候我抱著好奇與期待參加,第二、三次時開始覺得這是日常的一部份,然而到最後一次的時候,才驚覺這段時間已經快要結束了。我是一個慢熟型的人,要花比較長的時間才會跟別人變熟。在1J裡面,我多認識了很多有意思的人、想更多了解的人,然而光陰似箭,幾天後大家又要分開,要再等到好久以後才可以見到大家。 不過沒關係,以後還有很多機會。上大學以後、甚至出社會以後,我覺得我都能夠再次遇到大家。 ### Ave Mujica ep.13 今天晚上十點是Ave Mujica的最後一集,我進選訓之前覺得應該會有很多要看的人,而且很期待可以跟大家一起看。不過,當天才知道,有要跟的人沒有很多,準確來說是只有我跟cot,剩下有些人在打格鬥遊戲,有些人在看賽馬娘,||有些人在嘴砲說要看楓與鈴。|| 不得不說,我覺得母雞卡真的沒有像買夠那麼好看。原因有很多,我個人覺得最主要的是編劇實在太貪心了,想要一次呈現很多條線的故事,然後就變成角色心態轉變的理由、蛻變的過程等都沒有刻劃得很深入,很多地方看不太懂或覺得有點轉太硬。再來就是中國那邊疑似有內部人士以假藥分析的皮偷渡暴雷內容,而我也有看過類似的東西。他們會被懷疑的理由很簡單:預測的實在太準了,很多莫名其妙的細節也全部猜中。可能是因為我有不小心看到過「猜中」劇情的分析,所以我在看母雞卡的時候沒有被應該要是爆點的東西震撼到,我覺得還蠻可惜的。 不過聽說買夠和母雞卡要出續集,續集中兩個樂團都會出現,就讓我們繼續看評價能不能被救回來吧。 ## day 12 ### vjudge 今天早上上課的教授給了我們一份十題的題單,讓我們早上練習,並把分數拿去算平常成績。裡面有些題目很簡單,有些很難,有些很詭譎(例如不告訴你多筆測資的測資筆數)。我好像有做出6題吧,然後其他人真的好強而且手速好快。 ### 考前 大家一反裝弱的常態,從一直說自己很弱會打很爛變成說自己很強會打爆所有人,還挺不習慣的,但是我也不知道我比較喜歡哪種氛圍。下午的練習時間,有些人仍然很認真的做題,有些人開始放飛自我去看動漫了,我就屬於後者。 我在選訓被推了金牌得主、賽馬娘、黑暗集會、很愛我的100個女朋友,不過聽說黑暗集會是恐怖的,我還在考慮要不要看,因為其實我膽子蠻小的,而且豐富的想像力很容易自己把自己嚇死。 在放鬆的人還是算少數,大多數人都還在練習,我能感覺到教室中充滿緊張的空氣。對我來說,能在高中畢業前撈到一個選訓已經很棒了,雖然在一磨輸掉以後有暫時覺得超級想要逆襲,但我現在的心態也變得沒這麼在乎了。不知道為什麼,就突然覺得OI也只是競程的一部分,而競程也只會是我資訊之旅的起點。未來還有好多好多東西等著我去探索,模考就盡力,然後就隨緣吧。 ### 隱家 今天晚餐是外匯,雖然可能聽起來很高級但其實就是比營養午餐好一點的桶餐而已。看完今天的菜色後,我們有一群人決定晚上自己出去吃。感覺來選訓營就要吃拉麵,他們知道我沒吃過隱家後,就帶我來到隱家。這時候大概七點半,店外有十個左右的人在排隊,不過我們還是排了。可能是因為他們的位置還蠻多的,沒過多久就輪到我們了。 我點的是雞湯拉麵,再加20元的麵(我現在突然發現忘記還拉麵錢給pacybwoah)。整體感覺不錯,就是好喝的雞白湯和好吃的舒肥雞,不過是也沒有那種吃到會覺得很驚豔的感覺,我們在吃的時候好像有吃完的外國人一邊往外走一邊說It's overated之類的。 但不管怎麼說,這都是令人滿足的一餐,很高興能在二模前一天吃到。 ## day 13 ### 二模 這次雖然不是在上課的教室考,但還是一樣一堆人可以看到很多其他人的螢幕,像我就可以看到坐在我前的的八個人的。雖然我不會故意去看,但還是希望有一天能夠改進,不然每次不小心看到人家的電腦以後都還要在那邊掙扎說欸我現在這個做這個判斷是不是因為我看了他的電腦,那我現在是不是不應該知道這個之類的,很煩。 具體的過程我懶得寫了,因為也沒什麼特別的地方。反正最後,我拿到了滿意的分數,雖然離2J線還有一大段距離,但我覺得我已經做得很好,能不留遺憾的退場了。 賽後,聽到很多人在抱怨自己打很爛,或是抱怨題目出很爛,然後有人說要退役。我覺得在打輸一場比賽後,這些都是蠻正常的想法~~(尤其題目真的蠻爛的)~~,這種時候,就好好休息吧。不用在這時候強迫自己調整好未來的計畫或做出某些決定,這個時候要做的,應該是慢慢接受自己的情緒、承認自己的不甘心,暫時做一些轉移自己注意力的事情(推薦看轉生公主與天才千金的魔法革命!),等三天、一個禮拜,或一個月以後,風暴揚起的粉塵歸於大地,未來之路自然清晰。 ## 後記 這次來到1J,我玩得很開心,也圓了高中以來的夢想。旅途中,有許多值得開心、值得感恩的事物。 首先是天氣。在這接近兩個禮拜的營隊中,天氣一直很不錯,直到最後一天才有微微飄起毛毛雨。感謝每天的好天氣讓我在去夜市、去師大、回飯店的路上不用多撐一把傘,可以有手拿更多吃的。 再來是我的室友duda。謝謝你總是在我很累的時候讓我先洗澡、配合我的早睡行程,還幫我拿我忘在房間的好多東西。 接著是其他同學們。雖然很晚才認識,不過大家還是跟我處的很好,做很多酷酷的事情,我覺得很有意思。 最後是工作人員們。雖然營隊有很多還可以改進的地方,但如果沒有你們,根本連這個營隊都不會有。 We will meet again.
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up