[DMY]2024 NOIP 模擬賽 Day 2

Redamancy_Lydic發表於2024-11-02

這場比賽難度明顯遠大於 NOIP 阿偉。

賽時

T1 看了一眼先寫了個階乘級別的暴力,然後用暴力開始手搓樣例,觀察所有滿足條件序列的特點。

造了十幾組以後我發現了很多性質:長 \(n\) 的序列數字 \(i\) 在所有答案中可能的位置有 \(\min(i,n-i+1)\) 種,數字 \(1\) 的位置可以確定,數字 \(i\) 的候選位置可以由 \(1\sim i-1\) 推出來……

嘗試組合,我發現了一種基於數值從小到大依次填充的思路,加上資料結構最佳化複雜度可以到 \(\mathcal{O}(n^2\log n)\)。但是轉念發現賦初值,清空,空間,迴圈順序等一堆東西都需要考慮,十分難寫,於是先去上了 WC。

上完以後開始寫,寫到大概 10:00 開始調,調到大概 10:15 不想調了,就棄了。

T2 等了 10min 除了暴力啥都不會,所以就把一個 \(\mathcal{O}(n^5)\) 的列舉寫了。

T3 感覺思路大開。先寫了一個複雜度 \(\mathcal{O}(n^3)\)\(dp\),然後看上去十分可以用資料結構最佳化。

一開始以為要用二維線段樹,後來發現只需要對每行每列都開一棵就可以了。

算了一下空間帶上常數是 \(8\cdot n^2\) 的,時間是 \(2\cdot n\cdot k\cdot \log n\) 的,還沒算線段樹的常數。

寫完以後發現掛了,調了大概 30min 還是沒調出來,於是去寫 T4。

T4 是我最不會的期望,寫完 dfs 發現果然掛了,不想管了,交了個樣例過不去的程式碼。

回去看 T1,把之前的程式碼都刪了,開始重新思考思路,確立了幾個步驟:

  • 先確定數字 \(1\) 的位置。

  • 賦值,對所有已知值做一次 LCS 和 LDS ,合理賦初值使得求的時候不會產生額外影響。

  • 讓求出來的值和 \(a,b\) 匹配,匹配成功則說明合法單重一定有一種方案可以這樣填充,直接作為答案即可。

  • 回到第二步。

此時已經 11:40 了,寫完大概 11:57,還剩 13min ,我覺得可以調出來。

去改初值,陣列定義,迴圈的 \(i,j\),總之改了一堆,最後也是成功的沒調過。

賽後

總分 20+10+10=40,我看了看好像這一屆除了一個大佬分數都 \(\le 60\)

總的來說,難題還得多練,不能出現會思路不會實現之類的情況。

相關文章