終於沒有考崩,於是乎寫了一篇游記。
\(Day \space -6 \sim 0\)
頹廢 + 寫莫名其妙的 \(DS\) + 瞎出題。
\(Day \space 1\)
在人大附門口遇到了 \(wsy\),被暴力膜了一整路。
走到 \(6\) 樓發現還是 \(CSP-S \space 2021\) 的那個承載了我噩夢的考場,\(rp--\)。
不過這次加了隔板,所以應該不會被搞到心態。
考前沒有看到 \(zzt\),\(rp--\)。
\(8:30\) 鋼 鐵 之 心
看到這個 \(T3\) 的 \(a_{i-1}+a_{i+1}-a_i\),我馬上就想到了前幾天 \(zzt\) 暴切的那場正睿 \(T1\)。
推了一下,果不其然,這個操作等價於交換差分數組中相鄰的兩個元素,意思就是我可以隨便排列差分數組。
然后就是極為痛苦的推式子,最終推出來一個 \(n\times \sum_{i=1}^n\limits a_i^2 - (\sum_{i=1}^n\limits a_i)^2\)。然后干瞪了半天莫得思路。
決定戰略性放棄 \(T3\),轉戰 \(T1\)。
一開始打了一個大暴力,以為能報出來的數會比較少。但是發現並沒有。
又仔細想了想,發現可以直接暴力篩。
寫了一個調和級數,又加了幾個小剪枝,跑的還挺快的。
然后我就把 \(T1\) 放在了一邊,轉戰 \(T3\)。
我決定先打一個暴力,看看最優解的差分數組長啥樣。
發現是個單谷,但是兩邊的分布很怪,於是決定先把暴力交上去拿 \(20\) 分。
折回來看 \(T2\),發現我看不懂題。
瞪了半天樣例解釋之后,終於把題看懂了,並且迅速想出了一個時間復雜度為 \(O(n^3m2^{2m})\) 的優異算法,但當時算錯了,少乘了一車東西,於是開始瞎寫。
寫完之后發現這個東西過不了樣例 \(2\),由於時間還足夠充足,我就用人生中最快的速度 \(rush\) 了一個 \(O(m^n)\) 的大暴力。
一測大樣例 \(2\),跟我的暴力 \(dp\) 一個輸出。
我瞬間整個人都不好了,連忙重新看了一遍題目。
\(\textbf{二進制表示中 1 的個數不超過 k}\)
而我之前一直認為是等於,改了一改就過了。
但是這個代碼跑的奇慢,第三個大樣例跑了一年。
我把代碼拉過來重新算了一下,發現 \(n = 30, m = 12\) 時我的代碼運算次數是 \(5\times 10^{12}\) 量級的,當場就蚌埠住了。
我當時幾乎就要決定 \(T2\) 交個 \(20\) 分上去然后擺爛了,但就在這關鍵時刻,我發現我在枚舉 \(S\) 的時候每一次 \(dp\) 算的東西好像都是跟 \(S\) 關系不大的,准確來說 \(S\) 只是一個上界。
我當場就恍然大悟了,把 \(dp\) 放在了外面,然后每次枚舉到 \(S\) 的時候直接查詢對應的 \(dp\) 值就行了。
這樣的時間復雜度就是 \(O(n^2m2^m + n2^m)\)。可以過!
於是我 \(T2\) 就拿到了 \(50\)。為了避免 \(fst\),我把暴力和我的代碼放在后台拍,\(1\) 秒鍾就拍了 \(100\) 組,機子十分可怕。
最后我 \(T3\) 瞎寫了一個差分數組排序后左邊放倆右邊放倆的假到不能再假的貪心,和暴力拼在一起就交上去了。
\(T4\) 根本不想看,直接 \(puts \space zzttxdy\)。
最后十分鍾玩了兩把五子棋,被吊起來錘,體驗極差。
預估分 \(100+50+20+0=170\)。
出考場身邊一群人都寫 \(T4\) 了,感覺又要墊底了。
洛谷預測 \(100+50+48+0=198\)。
只有假貪心就能拿 \(40\) 分,震撼 \(lht\) 一整年。
感覺貌似沒有那么墊底?
update on 2021.11.29:官方數據居然是 \(100+50+60+0=210\)
update on ???:終於有了一等
update on 2022.03.11:事實證明如果 \(T3\) 寫的暴力是 \(2^n\) 的話能得 \(80\) 分,如果再拼上一個隨機化能過。
