CSP2019 S 第二輪退役記

2022-05-19 05:37:47 字數 2935 閱讀 7375

《更新提示》

《正文》

到杭州的時候是下午,休息了一下就吃完飯了。

晚上的時候閒著沒事複習了一下幾個不太熟的數論板子,\(\mathrm\),\(\mathrm\),\(\mathrm\),還有高斯消元,線性基什麼的,但願不考。

感覺有點緊張。

好早就到文淵中學了,感覺人特別多,進考場前膜拜了一下\(\mathrm\)大佬,還從手機上看了一下\(\mathrm\)系統下的開棧方法,然後就進考場了。

地下室感覺有點悶熱,還沒有廁所,不得不說,那個移動廁所是真的垃圾。

時間到監考老師就公布了試題的解壓密碼,\(\mathrm\)

\(???\),我竟然還打錯了一次。

開始先看題,果然還是有樹上問題,而且和去年\(\mathrm\)一樣有兩道,第一次似乎沒那麼送分,還是要找找規律。

先推了第一題,一開始看到對於\(95\%\)的資料\(k\leq2^-1\),對於\(100\%\)的資料\(k\leq2^\),一臉蒙蔽,出題人在想peach,感覺沒什麼區別啊。

然後就開始推了,最後發現可以根據題意遞迴,先求十進位制下的值,然後再轉換為二進位制,時間複雜度應該是\(\log^2\),好像沒什麼問題,但似乎有點挫。

保險起見,就和模擬程式對拍了一下,結果發現拍的飛快,這時候差不多\(9:10\)。\(\mathrm\)組資料很快拍完了就開了\(\mathrm\)組繼續拍。

然後開始看第二題,感覺有點複雜,覺得應該要先思考固定括號串的統計方法,推了一下,發現可以分治,但是結合暴力\(n^2\log n\)可能過不了\(2000\)的點,感覺不太行。

再想一下發現可以直接模擬進出棧然後統計,那樣的話\(n^2\)暴力的分應該是有了。

仔細一想,進出棧統計是乙個增量的過程,可以直接把鏈的資料也過了,感覺還不錯。但是放到樹上似乎要支援撤銷,感覺需要一定的技巧,一下可能寫不出來,決定先寫第三題的部分分。

這時候發現第一題的對拍怎麼越來越慢,\(30\)分鐘\(10000\)組都沒拍完,然後想關閉對拍的時候發現\(\mathrm\)根本關不掉了,有點慌,考前停課的時候似乎有大佬也遇到過類似的情況,也拍了很多組資料了,感覺應該問題不大,就沒有和老師說。

然後開始搞第三題的鏈和菊花,感覺鏈應該比較簡單。一開始先想了乙個貪心的做法,結果發現必須刪掉所有邊,有點難辦,花了不少時間,還是在原來那個演算法的基礎上改進的。

然後我想再試試能不能關掉第一題的\(\mathrm\),結果發現什麼的打不開了,電腦顯示記憶體空間已不足。

趕快叫了老師結果是對拍把電腦記憶體用完了,最後沒辦法重啟了一下,還好程式都存在\(d\)盤,沒什麼問題,就是費了一點時間。

然後就肝第三題的鏈到最後,調出了乙個能過小樣例的做法,不知道時間怎麼樣,也沒時間寫第二題的正解了。檢查檔案配置,然後就出考場了。

下午回到賓館發現似乎第三題確實很難,但是大家都\(210\),一開始感覺自己也有\(200\)左右,也還可以。

然後在知乎上看到看到第三題出題人發的題解,直接自閉,鏈的部分分寫的好像是假的。然後又看到第一題要用\(\mathrm\),又丟了\(5\)分,我在想peach吃。再然後發現第二題可以用主席樹撤銷,我們竟然沒有寫。

心態有點不好,滿打滿算也只有\(175\)分了,感覺\(day2\)翻盤的概率不大了。

還是一樣的流程,很快就開始考試了,解壓密碼我又輸錯了一次。

看到題就感覺不太可能是有些人昨天說了\(\mathrm\)放反之類了,感覺\(\mathrm\)更有難度了。

第一印象:\(t1\)神仙計數,\(t2\)

\(dp\)

\(+\)鬼畜優化\(+\)高精,\(t3\) 估計還是計數。

先推了一下\(t1\),發現怎麼\(dp\)的不太行,可能要直接計數,主要是因為有\(a_\)的係數很煩。

然後看了一下\(t2,t3\),\(t2\)很快想到了\(n^3\)的\(dp\),但是分好像不太夠,發現可以直接用二維偏序求最值,但是字首和值域有點大,可能要用線段樹,但是\(n^2\log n\)似乎過不了\(5000\)的資料,就沒有寫。

然後看第三題,暴力\(+\)鏈有\(55\)分,還算比較良心,決定先寫二三兩題暴力。

然後考慮優化第二題的\(dp\),一開始的想法是決策單調性或者單調佇列,結果發現單調性不太有,而且決策集合的左右端點似乎不是單調增減的,也沒辦法單調佇列,然後就放棄了。

這時候感覺第二題的線性做法可能不是\(dp\),於是決定貪心,盡可能分多的段,然後貪心地調整段邊界的數字,結果兩個大樣例都過不去,於是就決定磕第一題了。

還是在想第一題的\(dp\)做法,想把方案和係數分開來處理,但是還是不太行,然後想了容斥,補集轉換,感覺都不行,最後放棄了,敲了\(m^n\)

\(dfs\)暴力。

感覺要退役了,竟然只寫了三題暴力\(...\)

下午回學校,聽大佬才發現第一題\(n=40\)的點可以直接\(dp\),然後我第三題的鏈又寫掛了,沒有注意到要\(dfs\),感覺徹底涼涼了。

最好情況下也就是\(\mathrm\ 95+70+10=175\),\(\mathrm\ 32+36+40=108\),合起來也沒有\(300\),真的涼涼了,感覺不用學了。

大概看完網上的民間題解之後發現其實問題還是出在\(\mathrm\),\(\mathrm\)反而沒什麼問題,\(175\)也就是我能拿的分數了,第二題嘗試寫了帶撤銷陣列的正解寫法,調了很久也沒有調出來,也不是考場能寫的題,唯一的遺憾就是\(t1\)少了\(5\)分。

然後最崩的還是\(\mathrm\),第一次想了很久,\(dp\)早都想出來了,容斥和補集轉換都想到過,竟然被自己\(pass\)掉了因為沒注意到不合法方案至多只有乙個菜不合法,然後就少了\(84\)分。再就是第二題沒有想到\(dp\)降維,沒有必要記錄第二維狀態,然後只要大膽猜測決策單調性就可以得到\(64-88\)不等的高分,這才是失分最多的題。

老師讓我們寫之後的安排,感覺已經退役了,哪有什麼安排。

一定要好好搞組合計數和計數\(dp\),\(dp\)優化,以及\(\mathrm\)那種風格的思維題一定要多做,\(\mathrm\)的思維題也應該做做,再就是落實熟練高階資料結構吧。

《後記》

CSP2020第二輪遊記

今年csp第二輪在jz考 嘛,因為初賽去過了。就沒什麼感覺了 超大,徒步的話腳直接 廳沒有可以睡舒服的地方差評 中午起來後,就是迷迷糊糊的進入考場 然後看題之前,密碼一直不對。後來發現忘打括號心態 之後看第一題 好傢伙,等我先打個暴力 30min later 可以 年1e9 直接二分 但就是一直調。...

CSP2020第二輪J組簡析

祝各位noiprp 題,奇數 1,偶數從大往小列舉2的次方 include using namespace std int n,k long long a 30 int main a 0 1 k 0 while a k n a k 1 a k 2 k for int i k i i if a i n...

2020CSP第二輪方格取數(number)

這道題的難度還是有的,比賽的時候第一直覺是dp可是感覺直接做有後效性。所以還是上爆搜吧 然後完美10分。解題思路 最終程式 還是乖乖地學dp吧 設有 的方格圖,每個方格中都有乙個整數。現有乙隻小熊,想從圖的左上角走到右下角,每一步只能向上 向下或向右走一格,並且不能重複經過已經走過的方格,也不能走出...