AGC035D

题面

给定 \(n\) 个数字。每次选择三个连续的位置,删去中间的数,将中间的数的值加在左右的两个数上。

最小化剩下的两个数的和。

数据范围:\(n\le 18\)

题解

正向考虑不好做,那么我们就倒着考虑。

考虑最后一个被删掉的数 \(x\),对最终答案的贡献都是 \(2\) 倍,然后区间 \([1,n]\) 就分成了两边:\([1,x],[x,n]\)

这时候然后我们发现,对于一个区间 \([l,r]\) ,若 \(l\) 对最终答案的贡献为 \(x\) 倍,\(r\) 的为 \(y\) 倍,那么在 \([l,r]\) 中最后一个被删掉的数对答案的贡献就是 \(x+y\) 倍。

所以这像一个区间 dp 的模型,但是我们无法记录 \(x,y\) ,很显然 \(x,y\) 会很大。

但其实我们不记录,直接跑不记忆化的搜索复杂度是正确的:

因为 \(T(n)=2\sum_{i=1}^{n-1}T(i)\) ,所以 \(T(n)=O(3^n)\)

启发

  • 区间dp不记忆化的复杂度是 \(O(3^n)\) 的。
posted @ 2022-07-08 19:04  qwq_123  阅读(25)  评论(0编辑  收藏  举报