1. 程式人生 > 其它 >NOI 2021 同步賽打鐵記&總結

NOI 2021 同步賽打鐵記&總結

由於是同步賽,沒有什麼現場體會,就說說自己所親身感受到的吧。

\(Day\) \(-1\) 及之前

複習板子……

看了一遍題庫到 UOJ 模擬了下筆試,只有 92/kk/kk

\(Day\) \(0\)

筆試,同步賽沒參加。

學長們 ysh 和 yc 99pts;嬴政,謝隊和 c03 100pts。

比賽千萬不要有任何的功利心理。你越想得到什麼,你就越得不到什麼。

完全放鬆,拋開一切壓力,這是最好的。

於是晚上 \(11\) 刷《你名》,感覺極度舒適。

——chen_03《FJOI 遊記》

於是打算學習隊爺,嘿嘿,考前放鬆一下~

\(Day\) \(1\)(第一天比賽日)

CCF 又咕咕咕了……

大概 8:00 多一點我就坐在電腦前等待了,比同步賽的開始時間提早了將近半小時,結果……等到了 8:30,同步賽網址還沒出來;接著 9:00 多一點,聽說現場選手開考了,本以為 9:30 要開始了,結果 CCF 硬生生地(明明是自然而然地

)把比賽咕到了 10:00……

我當時在 8:30 後發現同步賽不可能這麼快開始,於是打開了 b 站,決定重溫《你的名字》放鬆心態(事實證明我做的很對)。

10:00 開考。開啟題面,第一眼:三道傳統題,開 O2,不錯(我可是 nealchen 官方認證的不會互動的萌新!)。仔細閱讀了注意事項,遂謹慎開題。

三道題,描述都很簡短,題意都很清楚,一眼都很讓人自閉,還是選擇順序開題。按照學長的經驗先打了個 T1 \(O(nm)\) 30pts 的暴力,方便之後驗證正確性,同時決心要拿下 T1。

想了一會兒,發現性質 \(A\) 只需要線段樹區間覆蓋,打了發線段樹再拿 20pts。

過了一會兒,發現性質 \(B\) 只要兩條鏈上覆蓋一個數值,求當前點值是否大於父親;之後又發現 LCA 答案好像不太對,於是另外維護一棵線段樹特殊處理 LCA。

這樣我的常數就翻了一倍,第四個樣例跑了足足 \(1.9s\),然而時限只有一秒……此時已過去了快三個小時。我怕被卡常,於是死命卡常,快讀+register+inline+各種玄學剪枝,最後執行時間還是穩定在 \(1.2s\) 左右,自閉了。

\(3.5\) 小時轉瞬即逝。我不敢再在 T1 上多花時間了,於是轉戰後兩題。

仔細一看 T2,奇偶數個交點的路徑方案數之差???感覺以前做過類似套路的題,然而只記得當時是用行列式做的,具體細節不是很記得……又因為 \(n_1=n_k\le100\),於是猜了個結論:答案為從 \(1\)\(k\) 每個點路徑方案陣列成的矩陣的行列式。前者矩陣乘法一下即可。稍微手算了下樣例,感覺沒問題,種種跡象都在暗示著這是一個行列式題!!!

經過 \(1h\) 艱辛的寫程式碼,除錯與卡常,終於過了所有樣例,時間也卡進了 \(1s\)!感動。

做最後一題時只剩半小時了,想都沒想打了個 \(O(nq)\) 28pts 的暴力就走人了。

賽時估分:\([50,70]+100+28=[178,198]\)


賽後打聽現場選手的情況,隊爺 c03 估了 \(70+75+36=181\),很牛。學長們普遍估在 \(200\) 上下,謝隊更是估了 \(244\),感覺謝隊今年比較穩。

大家一起等成績,下午 4:15,CCF 很準時地公佈了正式賽成績,c03 沒有掛分,強強!yc \(191\),嬴政 \(198\),ysh \(168\),謝隊 \(214\)。本來覺得大家考得都還挺好的,後面傳聞說 \(AK\) 的有 \(30\) 人!瞬間自閉,也替他們擔心……

在洛谷上測完,賽後估分只有:\(70+85+28=183\),T2 陣列開小白丟 15pts/ll/ll。然後想著過去了就讓它過去吧,把還沒過去的做好才是最重要的!


聽說 Linshey CE 了一題,好慘……

\(Day\) \(2\)

把《你的名字》看完了,我心潮澎湃,久久不能平靜。令人感動之餘,又耐人尋味,實為一片佳作!

學長們去參加現場的 NOI 遊園活動了,看起來十分有趣!/se/se

今天十分放鬆,作息時間和平常一樣正常,十點多就睡了。

\(Day\) \(3\)(第二天比賽日)

沒有想著翻盤,只是想著《奪冠》中郎平教練說過的「要把分一分一分地咬下來」。

還是先看了三題的題面,雖說是傳統題,但題意略顯奇怪,題面和樣例解釋過長,不免看得會有些煩躁……

第一題想到了一個壓位的做法,但是那時竟認為判斷兩個數之間的距離要預處理一個平方級別的表!還認為儘管生成串隨機但詢問串不隨機所以資料部隨機!還以為 \(lastans\) 只有 \(0\)\(1\) 可能是個假強制線上題!結果這還不如寫一個 bitset,預計 24pts。

T2 也沒什麼頭緒,先寫了 20pts 的暴力,在打表發現 \(A\) 性質是斐波那契數,調了一會兒答案沒問題了,預計總共拿了 35pts。

與前一天不同,做 T3 的時候,我還有整整兩個半小時!看了會兒又臭又長的樣例解釋,嗯,這題可以容斥?不過容斥的複雜度是 \(O(2^nnm)\),感覺只有 20pts,只能過 \(n\le16\) 的部分情況;又感覺 \(n\le32\) 資料範圍只是上面的暴力的兩倍,可能可以 meet-in-the-middle 做,但想了會兒發現兩邊有些許關聯且不太容易合併……於是按這個思路瞄準性質 \(A\) 寫了個 12pts 的暴力,在最後十分鐘調過了樣例。

賽時估分:\(24+35+32=91\)。墊底了。


c03 估了 \(28+35+28=91\),哈哈哈我總分竟然和他一樣。學長們普遍估在 \(100\sim150\) 左右,謝隊估了 \(240\)!翻盤概率很大啊!

這天成績比較早出吧,c03 又一次沒掛分,Orz。yc \(154\),嬴政 \(86\),ysh \(82\),謝隊 \(224\)。謝隊國集穩了!

自己在洛谷上測完,賽後估分只有:\(28+0+40=68\),T2 TLE 了,原因如下:

inline int swapchar(char &a,char &b)
{
	char c=a;a=b,b=c;
}
inline LL swapLL(LL &a,LL &b)
{
	LL c=a;a=b,b=c;
}

函式型別應該是 void 的……不愧是我……/wq/wq


算上筆試分數線 Au \(498\),Ag \(310\),Cu \(219\),謝隊金牌,其他學長和 c03 銀牌 Orz。

自己同步賽按照洛谷測試結果估分大概 \(183+68=251\),勉強 Ag 吧,但離 Au 還有非常大的距離。


總結

  1. 沒有認真檢查導致白丟分,比如 D1T2 陣列開小白丟 15pts,D2T2 返回值錯誤導致 35pts$\rightarrow$0pts,這是最容易挽救的且最大的失分。

  2. 想當然而導致丟分,比如 D2T1 有一檔資料隨機的部分分,我猜到答案可能是全輸出 \(0\),但立馬又否定了這個想法,但凡動點腦子也不至於會讓一個 \(100\%\) TLE 的暴力代替這個還有可能正確的想法,白丟 12pts(好像 c03 也犯了同樣的錯誤……)。

  3. 以上都是主觀原因,講講客觀原因。平常難題做得少,導致除了前兩題分數還可觀外後四題分數都極低,所以以後要多做紫黑難度的題。

  4. 知識面不夠開闊,比如 D1T2 只要知道 LGV 引理,D2T2 按照 Tweetuzki 所說的只要知道 SB-Tree,就是兩道送分模板題。

  5. 對簡單知識掌握不紮實,理解不深刻。比如 D2T1 的抽屜原理,我就一點沾邊的都沒想到;還有這道題根本不需要開平方級別的表判斷兩個數的距離,位運算很簡單就能處理。

  6. 這次表現的還可以的地方有,因為不是正式賽所以心態比較放鬆,以及有寫暴力又仔細檢查使得除了 D1T2 和 D2T2 外其他寫的分都到手了。

  7. 應對方法:仔細認真思考檢查!不要想當然!多做難題!多學新知識點!紮實掌握深刻理解簡單知識!比賽時放鬆心態寫對拍!保證會的分不丟!

2021 年的 NOI 的賽程算是結束了,取得了一個看著還可以但不是很滿意的結局,最終還是留下了些許遺憾吧。希望在未來的 OI 之路上,能不忘初心,砥礪前進,奮勇拼搏,在 OI 的賽場上取得令自己滿意的成績吧!

ねぇ,今から晴れるよ!——《天気の子》

Update:金鉤 c03!!!