記載

lupengheyyds發表於2024-10-03

最值問題

網格圖路徑問題的分治做法

P3350 [ZJOI2016] 旅行者

注意到 \(nm\le 2\times 10^4\implies \min(n,m)\le \sqrt 2\times 10^2\)

對於一個矩形,我們將其對半劃分為兩個矩形。

如果一條最短路路徑經過中間的“劃分線”,那麼我們可以直接列舉這條線上的所有點作為“劃分點”,以這個點為起點向整個矩陣作一個最短路,便可以得到當前的答案,因為要列舉,所以應該優先列舉短的邊。

接著對於兩邊遞迴處理。

複雜度 \(\mathcal O(mn\min(n,m)\log^2nm)\)

例題:2024.10.1 T4,字串LCS


計數問題

屬性去重法

為了避免一個答案被計算多次,我們可以人為給每一個元素(方案)新增一個與眾不同的屬性,接著規定只選取滿足某種特性的那一個,以去重。

P1972 [SDOI2009] HH的項鍊

AGC013D Piling Up

帶容斥係數DP

僅容斥係數DP:即轉移的時候不講最後的答案算出而存為狀態,在最後才轉化為具體的值。

P4099 [HEOI2013] SAO

根據每條邊容斥(即取反)與不容斥(即直接忽視)進行DP轉移

dp of dp:

將DP的值設作另一個DP的答案,一般內層為一個最值DP,外層為一個計數DP,解決去到某個最值的方案數。

P8352 [SDOI/SXOI2022] 小 N 的獨立集

P4590 [TJOI2018] 遊園會


通用方法

動態狀態

一個轉移只用到很小的一部分狀態,則不斷重新整理狀態,使得其只與我需要的同階。

P3188 [HNOI2007] 夢幻島寶珠

相關文章