前排提示:這裡的“翻盤”指的不是 Day1 寄了 Day2 翻盤(雖然也有一點?),而是 Day2 單場比賽的翻盤。
2024.7.12(UNR 筆試)
沒看到與題庫相比改了答案,喜提 \(99\),正賽可不能這麼粗心!
2024.7.13(UNR Day1)
唐完了。
上來 A 結論假了,浪費了一個小時。
B 式子推錯了,改對後以為單次複雜度是 \(O(V^2\ln V)\) 的,想了好久怎麼最佳化。
最後一個小時看 C,被榜詐騙了。以為是簡單題,激進起來想正解,結果暴力分只拼了一點點。
喜提 \(100+100+14\),rk74。
2024.7.14(UNR Day2)
應該能稍微翻下盤吧?
A 看完題就會做了,成功搶到了一血。
B 寫了一個 \(O(n\log V)\),樣例過了 \(80\) 分。
C 先拼一點暴力,發現寫了隨機的分就可以過所有樣例,預感又要有人被詐騙。
後來在 BC 之間反覆橫跳,但啥都沒想出來。
\(100+40+40=180\),單場是 rk27。
兩天合起來只排在 rk47,成功 Ag。達成成就:UNR 排名是去年的五倍有餘。
2024.7.16
報導日,發現宿舍是按學校順序排的,舍友是 sky 和兩個雙十的 D 類。
拿到了徽章,但決定在考完 Day2 之前還是先不進行什麼社交活動。
2024.7.17(筆試日)
開幕式 dzd 依舊穩定爆典,貢獻了選手們為數不多的笑料。
其他部分也就中規中矩,除了後面這個表彰儀式簡直又臭又長/qd。
下午筆試,做了兩題之後發現幫我選好答案了???致敬傳奇出題人 Zayin。
於是延時了 \(15\text{min}\) 後重新開始,我沒存答案,不過還是順利 AK 了。
出來聽說下發的是去年同准考證選手的答案,有人被坑了。
晚上睡得很好。
2024.7.18(Day1)
開題先看了一圈樣例,發現 B 是個互動,大感不妙。
從 A 開始開,第一眼不會,想了一下發現構成雙射的數之間可以隨意選擇匹配,這樣就會多項式複雜度做法了。
想了一下可以雜湊最佳化,加上雙指標從以做到線性,在大約 \(15\text{min}\) 的時候透過所有大樣例。
開啟 selfeval 一測,發現給我爆 ce,看了一下程式碼感覺沒問題,於是舉手向監考求助。
他過來一頓指點,又讓我交了好幾發 ce,然後去問技術人員怎麼回事。隨後通知說 selfeval 鍋了,正在修。
於是先開 B,一開始沒看清楚資料範圍,以為直接分治就做完了,寫了一下發現算上第一個包只有 \(26\) 分。
期間 selfeval 修好了,一測發現怎麼 A 有 \(20\) 個點?pretest 賽制?好時代要來了?
想 B 的最佳化,感覺可以隨著層數的變化從二叉變成多叉,寫了一個貪心狀物拿了 \(52\),再加了一個剪枝獲得了 \(69\)。
先丟掉開 C,很快就觀察出了結論,寫了個 \(O(n^2)\) 獲得 \(56\) 分。發現只要每次快速找到只剩 \(1\) 的路徑就做完了,感覺自己能做出來,於是繼續想 C。
又想了好一會,發現自己不會低於 \(O(n^{1.5})\) 的做法,只會一個 \(O(n\sqrt n)\) 的 kdt,和 \(O(n\sqrt{n\log n})\) 的分塊。
我並沒有吸取 thupc 的教訓,想著 kdt 怎麼著都能過個 \(10^5\) 吧,於是開始莽。寫了將近兩個小時發現比 \(O(n^2)\) 可以多過 \(0\) 分!
感覺不能要了,先回去看 B,發現我其實可以把所有分叉的可能搜出來,狀態數不會太多,獲得了 \(t=9\) 的 \(78\) 分。
為什麼我不能做 \(t=8\) 呢?我的多叉不像正常人一樣是平均分,而是直接把餘數丟到了下一層,於是將所有狀態搜出來都過不去 \(t=8\)。
最後的時間想著寫個 C 的分塊,看看能不能衝過 \(10^5\),但寫到一半感覺寫不完了,轉拼菊花的分,但不知道為什麼到最後都沒調出來。
最後是 \(100+78+56=234\),出來一問,發現 B 是簡單題,也有一些人過 C。感覺寄飛了,要比大眾分低個 \(30\) 分。
福建 E 隊一個 \(264\),一個 \(252\),而我們 A 隊無人透過 B 題,感覺團體總分又爛掉了!
下午講評,深刻地意識到了自己場上有多蠢。
小道訊息說隊線含 DE 是 \(240\),那我吃個 A 隊的 \(5\) 分只低了一分,還有救。
2024.7.19
社會活動,三峽博物館,我不評價。
晚上睡得不好。
2024.7.20(Day2)
進場發現 A 是神秘數論,B 是看起來很可做的 ds 最佳化 dp,C 沒搞懂。
先看了 A \(30\text{min}\),發現自己除了知道可以輾轉相除判無解以外一無所獲。
我 D2T1 不過我打錘子呢?至少得過一個題吧?
於是先寫了個 \(O(nm)\) 的 \(50\) 分,去看 B。
首先的想法是對 \(h_i\) 按順序 dp,透過啟發式分裂來維護一些東西,然後用 ds 維護樹形結構的一些和。
先寫除了啟發式分裂,剩下都用 ds 維護的版本,寫了好久都過不去樣例,在 \(2.5h\) 的時候,我忽然意識到,我的轉移係數假完了!頓時冷汗直流。
先改了改暴力 dp,在 \(3h\) 多一點的時候終於拿到了 \(O(n^2)\) 的 \(25\) 分。
此時我有兩種選擇:
-
放棄這題的正解,選擇拼看起來不少的部分分,但不一定夠時間寫其他兩題的分了。
-
繼續衝正解,但衝不出來的話分數就會爛掉。
上了個廁所冷靜思考了一下,如果選擇第一種,那麼我必然達不到 Au 線,而我此時應該已經上了 Ag 線,低位 Ag 和高位 Ag 沒有區別!
於是我毅然地採取了第二種決策。
首先仍是對 \(h_i\) 按順序 dp,有兩種貢獻方式,每個點有一些存活時間,在存在的時刻,他們的貢獻是對到根路徑的一個字首。
先把轉移方式改成上述的,並用倍增+樹剖加速維護,調過樣例的時間大約是 \(4h\)。
還剩最後一個算係數的部分,似乎還要用一個類啟發式分裂的狀物來做。我沒寫過啟發式分裂,這個也不很板子,沒把握在極短的時間內寫對。
只剩 \(1h\) 了,我還只有 \(75\) 分,有點紅溫,要倒閉了。
但很快,我就意識到係數可以在一開始預處理,這樣可以倒過來維護,用並查集+線段樹合併就可以做了。
開寫!一遍就過了所有樣例,在 \(4h10\text{min}\) 的時候終於在這題拿到了 \(100\) 分。
回去看 A,觀察到答案很小,於是直接記憶化搜尋一下拿到了 \(70\) 分。
進而我發現由於輾轉相除過程的唯一性,所遍歷到的狀態必然不重不漏,不用記憶化就可以直接搜到 \(85\) 分。
在 \(4.5h\) 開 C,發現暴力、性質 A、性質 B 的 \(O(n^2)\) 都是簡單的,飛速地拿了 \(25\) 分。寫完後還剩 \(5\text{min}\),也寫不了其他分了。
\(5+100+100+78+56+85+100+25=549\)。
出來問了一圈大家的成績,固然比這個成績高的很多,但我知道自己真的翻盤了。
預估的金牌線一路走高,從一開始的 \(529\),到了 \(534、536\),最終定格在了 \(538\)。現在的選手真是卷得離譜,也許未來有一天,金牌線會達到 \(600\) 甚至更高,但我是看不到那個時候了。
福建今年進了四個集訓隊,分別是我,ljr,hjx 和 wzh。其實早該有四個了,但是前幾年的選手總是在 noi 莫名的失常。
2024.7.21
閉幕式。
最後是並列 \(\text{rk}38\),苟到了金牌的第二批。福建時隔 \(4\) 年重回團體前八,熱烈祝賀!!!
福建的四個集訓隊全在後 \(20\),不是很牛。不過也沒關係,畢竟 noi 成績也不帶入之後的比賽是不是?
站在臺上,看著胸口掛著的沉甸甸的金牌,我卻沒有產生什麼高興的情緒。也許是因為發揮與成績不盡如人意?又或者是我認為自己一定可以拿到這塊金牌?
接下來我需要考慮下自己的下一個目標是什麼。是進入候選隊?還是 cf 上 LGM?但無論如何,至少我有資格去思考自己未來該幹什麼了。