2024.8.23隨筆

Nekopedia發表於2024-08-23

前言

先說明我前兩天沒有寫隨筆的原因。第一天(8.21)是因為我當時寫完一篇題解後沒有來得及寫總結,然後我媽就說要帶我去九眼橋那片去轉轉,最後我們十點半才回到家。昨天是因為我想複習一下當日內容,先去寫了主席樹,然後做了一道題單裡的 dp 加貪心題,然後特判的時候沒有 return 0 交上去一直 RE,調了快一個小時,遂自閉。然後這三天其實有非常多值得寫的,但是前面沒有寫,所以這一篇部落格就長話短說了。

8.21考試

當時想的是順序開題,因為看上去一二三都比較可做。第一題我發現了一個很好的性質,然後去考慮 dp,可是如果暴力轉移那麼狀態和時間都不夠,於是就根據性質只維護了一部分我認為有用的狀態,然後好像資料水沒法檢查,然後就跳過了,最後得了65pts,全場最高。賽後才知道還有一個性質可以最佳化轉移,然後狀態數其實是夠的,只不過範圍太大可以用 STL (比如 set、map)存一下,太可惜了,不過也知道了 dp 的靈活,以後還要最佳化思路。目前我總結出來的思路是:先觀察性質,然後去對應演算法,再選取資料結構,最後考慮細節;還有就是寫程式碼前檢查正確性

第二題可以先轉化問題,然後貪心。但是難點在於如何處理多組詢問。我最開始想了一個單源最短路的做法,然後發現因為網格圖所以假了,就想到了一個維護障礙物的做法,但是不知道怎麼預處理,最後也沒有想出其他可替代的方法於是就亂搞做法最後25pts 成功墜機。之後知道 yt 暴力 \(n^2\) 過十萬,難受

第三題一眼是生成函式,但感覺資料範圍太大不行。然後想揹包做,然後再隨便亂搞一下的,但是看測試點的時候看到 \(n\le20\) 的有40就爆搜走了。然後考試後初中生基本都100,方才反應過來是一個折半搜尋。由此觀之,我對摺半搜尋一點也不熟悉,之後要注意一下。

第四題來不及多想了。首先先把題意轉化,正難則反,統計不滿足條件的區間然後用總的去減。看上去就是用 hash 加上字首異或和去做,更多思路沒有了就去打特殊性質,最後寫掛了,0pts。

真要說總結的話我覺得考試的時候我的思路還不是特別清晰,邏輯有時有點混亂。總之就是找不到去年的感覺了。我認為我最近做題有點死板,應該真正設身處地的去想一道題。為了解決問題而解決問題。然後 hfu 今天早上也恰巧說到這個,也算是與我的想法不謀而合吧。

我還有就是不夠自信(個人感覺),害怕失去。但如果過於保守反而會失去的更多,所以我要勇敢去嘗試,相信自己能夠做出題。

那天也沒什麼好說的了,就是覺得第一題出的很好就寫了一篇題解。

8.22多維資料結構

講了樹套樹、kd-tree 以及 STL 的 bitset,感覺就是題目思維難度不是特別高,但程式碼實現較為困難。題目也沒什麼好說的,大多是二維數點、平衡樹的操作套上區間的限制等型別的題。 kd-tree 只聽懂了思路不會寫;bitset 講了好像有沒講,但我覺得 STL 的容器真的沒有什麼好講的,就是知道每個容器有什麼函式就行,然後就是我想聽一下迭代器的用法結果學長做課件的時候漏了(悲。

下午複習了一下線段樹、fhq treap 和主席樹,感覺良好!寫了兩道板子,用的都是樹狀陣列套權值線段樹。然後有關資料結構我想說的就只有一點,能用樹狀陣列代替線段樹就用前者!只有被卡常才會深有體會!

8.23分塊莫隊

先講了基礎內容,然後基礎題都能暴切。後面上了主菜:Ynoi 的大分塊。自己一道都想不出來。然後聽講也大概只聽懂不到 60%。我諤諤。

下午在死磕一道大分塊,最後沒有寫出來,後來感覺不如去自己找一點藍題紫題做熟悉演算法。

其他

感覺這段時間有些疲憊了,之前從沒有過。明天下午後就又是周天了,可以休息一下,然後把上週鴿掉的字串補上。