題意:將 n 個人分組,分組後,乙個組的戰鬥力等於 a*sum*sum + b*sum + c,怎麼分組使得戰鬥力和最大。
分析:第一次自己從頭到尾推出來的斜率dp。
狀態定義 d[i] : 前 i 個人分組得到的最優值。
狀態轉移 d[i] = max ( d[j] + a*(sum[i] - sum[j])^2 +b*(sum[i] - sum[j]) +c )
顯然是o(n^2)
假設 k < j < i ; j 決策點更優。
這個斜率公式比較複雜了,其實就是將分子,分母轉為 與 j 和 k 有關的斜率式子,另一邊不能有關於 j 和 k 。
有了這個斜率公式,接下來就是分析斜率遞增還是遞減了。
假設3個決策點 k < j < i
顯然 凸多邊形,j 點不是最優點,不可能存在凸點。
然後就是根據多邊形的性質,相切之前怎麼樣,加入之後刪點等... ...
BZOJ1911 特別行動隊
目錄題目傳送門 典型的斜率優化 dp 首先如果我們記 sum i 表示前 i 個士兵的戰鬥力之和,那麼我們比較容易的可以得出 o n 2 的 dp f i max f j a sum i sum j 2 b sum i sum j c 如果 k j 並且 k 比 j 更優,那麼可以得出 frac l...
BZOJ 1911 特別行動隊 (斜率優化)
感覺這道題目還是比較常規的,首先我們很容易想到dp,因為題目裡面說了選出的人都是連續的,這意味著我們可以從前往後dp。我們直接設 f i 表示前 i 在分組之後的戰鬥力之和 因為題目沒有明確要求分幾組,所以我們省去這一維度 然後轉移也比較常規,我們列舉前面的某乙個人 k 作為這一組人的左端點 右端點...
bzoj1911 特別行動隊 斜率優化dp
ac通道 題解 首先很容易想到用字首和,下面的sum表示字首和。然後寫出狀態轉移方程 f i max 假設j比k更優,得到斜率表示式 f j a sum j 2 b sum j f k a sum k 2 b sum k sum j sum k 2a sum i 然後斜率優化走起。include i...