NOI2024 翻盤記

Nesraychan發表於2024-07-22

前排提示:這裡的“翻盤”指的不是 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\) 分。

此時我有兩種選擇:

  1. 放棄這題的正解,選擇拼看起來不少的部分分,但不一定夠時間寫其他兩題的分了。

  2. 繼續衝正解,但衝不出來的話分數就會爛掉。

上了個廁所冷靜思考了一下,如果選擇第一種,那麼我必然達不到 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?但無論如何,至少我有資格去思考自己未來該幹什麼了。

相關文章