dp关于石子合并的O(nlogn)做法 GarsiaWachs算法

Posted kkkek

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dp关于石子合并的O(nlogn)做法 GarsiaWachs算法相关的知识,希望对你有一定的参考价值。

P5569

题意:

在一个操场上摆放着一排 (N) 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的 (2) 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。

试设计一个算法,计算出将 (N) 堆石子合并成一堆的最小得分。

数据范围:

(N≤40000,a_i≤200)

题解:

(GrasiaWachs) 算法
从左往右找,找到第一个 (k) ,使得 (a[k-1]<=a[k+1]) ,我们把这两堆石子合并,把代价加在 (sum)
然后从 (k) 往左找,找到第一个 (j) ,使得 (a[j]) (>) 合并后的石头,把合并后的石头放在 (a[j])
合并 (n-1) 次后,(sum) 就是合并 (n) 堆石子的最小代价。

(GarsiaWachs) 算法可以把时间复杂度压缩到 (O(nlogn))
具体的算法及证明可以参见 (《The Art of Computer Programming》) 第3卷 6.2.2 节 Algorithm G和Lemma W,Lemma X,Lemma Y,Lemma Z。



【只能积累石子合并的求最小价值的优化 GarsiaWachs不会证不会推
【四边形不等式优化dp依旧不会
【放blog: 这个有讲到四边形不等式;这个解释了GrasiaWachs算法
【立flag!开学前学四边形不等式优化dp 然后把石子合并求最大值推出来(????)?

以上是关于dp关于石子合并的O(nlogn)做法 GarsiaWachs算法的主要内容,如果未能解决你的问题,请参考以下文章

石子合并问题(四边形不等式DP优化)

P5569 SDOI2008 石子合并(黑科技)

51Nod 1021~1023 石子合并 (逐步加强版) dp

Pangu and Stones 北京2017ICPC(三维区间DP)

蓝桥杯:合并石子(区间DP+平行四边形优化)

GarsiaWachs算法