1. 程式人生 > 其它 >FJOI 2022 遊記

FJOI 2022 遊記

Time:2021.5.3~5.4 8:30~13:00

寫在前面

FJOI2021 遊記

雖不及昔日,但機房裡還是無形中洋溢著一股熱鬧的氛圍,爽朗而魔性的笑聲接連不斷地傳出,如同往日一般歡快。

從清明到四月中旬,再到五一小長假,明媚的春光下,卻是省選的一延再延,隨之被牽動的,是眾人忐忑不安的心。

緣分讓原本素不相識的我們相聚於茫茫人海之中,在同一間機房裡,一起學習、生活、進步。

這間不大的機房,裝載著我們滿滿的美好回憶,見證著我們共同的奮鬥歷程,搭起了座座橫跨心靈的橋樑。

每個人都是一粒金子,都在時刻不停地閃閃發光,都在奮鬥路上無畏拼搏,都在用努力和汗水證明著自己,追逐著屬於各自的夢想。

可是,省選的季節總會到來,在這個萬物復甦、生機勃勃、充滿活力的季節裡,有多少人會帶著汗水與笑顏收穫勞動的果實,又有多少人會帶著眼淚與不甘憤恨地離去?

我,會成為哪一者呢……

\(\text{Day -1}\) 及之前

眾人都好卷啊,大家做的題都好難啊,天天模擬賽被吊打,自閉。

為了有一個良好的心態,考前一個月內的模擬賽我便很少參與,取而代之的是自己做題補缺補漏。

清明之後,自己已將目標從省選轉移到 NOI,也硬生生地將自己的做題難度提高了一個層次。

不過慶幸的是,幾天之後我就慢慢適應了,雖然有的題會想一天理解題解一天寫一天調一天最後還死活過不去,但是過了一道難題的喜悅感與過了十道水題的感覺,那是絕不能相提並論的,我覺得,這是花上再多時間也值得的。

樹哥(hhoppitree):想著我可以把我做過的毒瘤題出到初二模擬賽中,我就有做這題的動力了。

對了,樹哥現在初一。


\(\text{Day 0}\)

考場依舊在附中。

試機。我校有一半人選了 Linux,一半人選了 Windows,我選了 Windows,不過我們在同一間機房試,Windows 坐左半邊,Linux 坐右半邊。

去年試機時我和 Linshey 一起打了個費用流板子拍了拍。當今年我問及他打算寫什麼時,他說打算寫個 Splay 和 FHQ-Treap 對拍。很厲害。

後來我延續老傳統打了個費用流板子,其實是我也蠻久沒打了。c03 看我打費用流於是也打了個費用流。我掛了,改了個小錯後就拍上了,之後我們又一起打了個 SA。我又掛了,改了個小錯後就又拍上了。再之後聽他們談笑風生了一會兒,目睹著 Linshey 的兩份平衡樹拍上,驚歎不絕他碼力的強大之時,也深深感慨自己的弱小。最後趁剩餘的一點時間打了個線段樹,快讀,對拍,就跑路了。

\(\text{Day 1}\)

風蕭蕭兮易水寒,壯士一去兮不復還。

\(8:10\) 左右進場,還是比較緊張的。

\(8:30\) 準時開題,先看了三題題面。分別想了一段時間後才意識到 T3 是最簡單的,速速寫完。過了樣例之後手造了幾組資料,發現掛了,原來是有個地方 w 打成 cnt 了,改完之後又造了十來組看起來都沒問題,就先放一旁了。

這時大概已經 \(10:30\) 了,而我才做了一道簽到題。想了想感覺 T2 數論題比較可做,但是,你為什麼直接給我來個「對於 \(100\%\) 的資料」啊喂!一眼看出來可以 Pollard-Rho 但沒複習到不會寫了,不過算了一下直接 Pollard-Rho 要跑十幾秒而時限 3s,頓時心裡平衡了許多(?)後來又接連想了幾個假做法,都被叉爛了。最後大資料寫了個篩到第 \(8000\) 個質數的假做法,小資料寫了暴力,就溜了。

思考 T1 的時間都比較零碎吧。我甚至最開始是往網路流方向去想的,但圖死活建不出來。後面再想想 \(n\le2000\) 是不是可以考慮下 \(O(n^2)\) 的 dp?於是對每個點設了個有關左端點和右端點的狀態,感覺很對,但寫著寫著突然發現中間可能還有東西,不太好處理。之後便想著什麼貪心啊、堆啊之類的,搞不出來。最後一些時間,打算拿一拿 T1 \(n\le10\)\(10\) 分,然而暴搜真的好難寫啊!!最終還是選擇寫了個貪心+隨機化,發現我造的幾組 Hack 資料貌似都能過的樣子,感覺在小資料上應該挺厲害的。

\(\text{Day 1}\) 就這樣結束了。


出考場,沒什麼心情和同學交流。

然後,Linshey 突然過來跟我說他 T1 做過原題?還是 CF 上的??我 CF 做了那麼多題咋沒碰到捏。

接著 zc_li 說他也做出來了??後來 zyn 學長也說他做出來了???

看來我還是太菜了……


下午在機房裡,Uoj 群有高手爆破了早上兩題原題,後來 Linshey 去 CF 上一搜發現一個不得了的事實:一位 CF 使用者 water235 連著提交了這兩題的程式碼,而且他上一份提交記錄是 2017 年的,於是我們合理推斷他是出題人。大家迅速把窗戶關緊窗簾拉上,像是發現了什麼驚人的祕密一樣。

好戲還在後頭呢。

然後我們順理成章地點進他的 CF teams 一看,qzqzOI,我開玩笑地隨口說了一句泉州七中,仔細一看,哇哈,還真就泉州七中,這麼說,這次有出題人是泉七畢業的咯?

煎熬了一下午,分數榜出來了,\(10+10+100=120\)

失落之餘,我同時大跌眼鏡:在 FJOI 優秀的反向選拔之下,許多 NOIP 高分選手發揮失常,然而還是有人能取得諸如 \(300\)\(295\)\(280\) 的「好成績」,至於是什麼學校的什麼人嘛……

這件事我暫不多作評價,想了解的話或許可以看看這裡這裡,我想大家應該都有自己的看法了吧。


後來在機房待到申訴結束才走,謝隊算了下榜,我剛好是隊線外第一名,Linshey 緊跟在我後面。在我之前,我校只有三位學長上了隊線,與之前預估的被校殺也差太遠了吧……

目標立馬從校線轉成了隊線,算了算大概要差隊線 \(20\) 分,只能說還是有希望的。但在隊線之外,還有 Linshey,chen_03,zc_li 等眾多強神的「保險加持」,這波啊,真的壓力山大。

晚上做了一道題後就沒啥心情做題了,後來水了會兒知乎。

大家都在互相祝願明天能翻盤。

\(\text{Day 2}\)

沒想太多就進場了。

\(8:30\) 開題。還是先把三道題都看了。誒這個 T1 是字串,有希望。想了想發現要求的就是「對於每個 \(i\),一個字串中最大不相交出現次數至少為 \(i\) 的子串的最長長度」,感覺這個東西 OI-Wiki 上好像有。?然而努力回憶回憶不起來。想了許久不會,有點自閉出去上了個廁所回來後又看了遍題,發現這個子串還必須同時是原字串的字首和字尾!那這不是直接 KMP 一下,再 SAM 上用線段樹合併維護 endpos 集合,查詢隨便查一下就做完了!?等等,這時間複雜度好像是 \(O(n\log^2n)\) 的誒,只有 \(80\)。又想了一會兒沒想出滿分做法,倒是想出一個更好寫的 \(2\log\) 做法:KMP 之後求下 SA,然後倒著掃一遍同時用 set 維護連續段,啟發式合併就可以了。為了求穩我就打了 \(80\) 分,不過 KMP 和 SA 都是一遍過,set 啟發式合併也比我預估的好寫很多,寫的挺順利的。後來又寫了個暴力對拍,這一切都弄完大概不到 \(10:00\)

然後 T2 不禁讓人聯想起了去年 D2T3 的痛苦美好回憶:輸入一個數,輸出一個數,\(n\le10^9\)。然而暴力似乎跑得很慢的樣子,跑不出幾項來,加了一堆優化之後終於能在一分鐘內跑完 \(n=8\) 的了,而 \(n=9,10\) 的跑了好久還是出不來,只是停在一個答案好久不變了我就姑且把它當做答案吧(霧)然後什麼規律都找不出,構造也構造不出,用不等式構造了一個很鬆的上界並猜測其一定能被構造出,結果 \(n=1\sim7\) 時都過了,\(n=8\sim10\) 時都比答案恰好大了 \(1\),於是發現上界估的太鬆了,但是不太會估些更緊的上界。由於在這題上已經花費了有一個半小時吧,感覺做出來的希望也不大,就去想了想 T3。

T3 理解完題意後先想了想 \(k=1\) 怎麼做,發現可以用掃描線,還可以用單調棧,不過為了後面做法的通用性我選擇了掃描線。接著 \(k=2\) 就被卡住了,完全不會。想了好久然後我突然發現 \(k=4\) 時我手畫了好幾個 \(4\) 個點的圖,好像都可以覆蓋整個矩形的樣子,於是我又多花了幾個驗證了一下並簡單地作了證明。於是 \(k=4\) 時點數 \(\ge4\) 就直接輸出矩形面積,點數 \(\le3\) 就列舉每個點方向,再套用 \(k=1\) 時的掃描線即可。然後感覺時間來得及就立馬開始 rush,很刺激。寫著寫著突然想到把 T2 先交一下以防之後自己忘了交,順便把 \(n\le10\) 打了表 \(n\gt10\) 輸出那個很鬆的上界 \(-1\)。接著回來 rush T3,大概 \(12:30\) 前寫完了,之後又調了一段時間手造了一些小資料修改了一些小錯誤,然後沒時間寫對拍了於是給 \(k=2,3\) 補了個貪心,就這樣交上去聽天由命了。


考試結束後感覺自己水平基本都發揮出來了吧,還是有翻盤的可能的,也就沒昨天那麼自閉。先問了下 c03 但他好像發揮不太理想的樣子就沒多問了,出考場問了下 Linshey 他說他 200+,因為他找到 T2 規律了!然後問他 T1 複雜度,他說是 \(O(n\sqrt n\log^2n)\) 的,但隨機資料跑得飛快。我聽傻了,我說我是 \(O(n\log^2n)\) 的,然後他也傻了,緊接著他發現他沒有注意到所求子串必須是原串的一個 border 這個限制,也就是讀錯題了!然後很慘,c03,zc_li 也都看錯了,現在關鍵在於我 T1 有沒有掛,Linshey T2 有沒有掛,我 T3 有沒有掛,能不能翻上隊線了,不過這也還算是多重保險加持吧……

據 rsy 說 T2 是數學省集原題。?我尋思著我也去了啊怎麼沒印象,哦原來有七天最後三天考試我沒去啊那沒事了

在 OI-Wiki 上翻了翻發現我印象中的東西和 T1 其實並不一樣,也就沒啥遺憾了吧。


下午等出分,正跟 Linshey 打 9019 杯(在 9019 的機子上打乒乓球)之際,czhou 突然出現在門口說分數出了,我們連忙放下球拍衝過去看成績。看到自己的成績,我心頭的那塊巨石終於落下:\(90+0+56=146\),算是挺對得起自己的發揮了吧。

然後 jyy 和樹哥說 T2 一個 \(n=8\) 都過不去的假做法拿到了 \(100\) 分,我人傻了。問了下做法發現跟我用不等式估計上界那個做法沒啥兩樣。?這麼說甚至如果不減 \(1\) 我 T2 就過了??後來聽 Uoj 群說 T2 是 open problem 我人又傻了一次,FJOI 又領先學術界二十年啦!!(可能甚至不止二十年)

最後也算是有驚無險地翻盤了,隊線 \(50.00\),我 \(54.27\) B5,lzy \(62.10\) B2,yc \(64.23\) A5,Early \(70.70\) A1 直接 福 建 隊 長!!樹哥憑藉著第二題的 \(100\) 分也以 \(56.13\) 順利進 E 隊,如果一個人比你小還比你強,你就可以退役了

同年段其他同學都沒發揮出自己應有的水平,也挺替他們感到惋惜的。不過更感到惋惜的應該是沒進隊的高二學長們,這是他們的最後一次機會了,但還是因為低質量的 FJOI 最終沒能進入省隊,到 NOI 的賽場上全力拼搏一把,衷心祝願他們今後的文化課生活能夠順順利利的!


雖然感覺這次進省隊從 NOIP 開始就全程受到幸運女神的眷顧——NOIP T3 的亂搞拿了 \(60\) 分最終省排名 rk5,\(\text{Day 1}\) 雖然墊底但還是靠著 \(\text{Day 2}\) 剛好在我水平線附近的題目難度翻盤了,本來能考得更好的同學們不太盡如人意的發揮,以及最為重要的是,兩天省選的一分沒掛。

從這次的省選也可以看出自己的實力實際上是遠遠不夠的:同校進隊的三位學長都做出了 Day1T1,而我卻只有寥寥十分;本以為自己隊線上應該沒啥大問題,最後卻變成一出驚悚戲險些未進;如果 Linshey 沒有掛分的話他會比我高挺多的,也就是說在不掛分的前提下,他的水平是遠高於我的。

所以今後還是要多做難題以提升自己的水平,作繭自縛,破繭成蝶。希望那時在 NOI 賽場上的我,能夠披荊斬棘,不留遺憾,將自己的努力與汗水變為金子熠熠生輝!我們上海見!

one day you will reach where your dream can reach.

夢裡能到達的地方,總有一天,腳步也能到達。