AT5141 [AGC035D] Add and Remove
真心想不到啊...
每个数的贡献次数和其被删除是左右的点将要贡献的次数有关。具体来说,如果点 \(p\) 被删除时左右端点为 \(l,r\),贡献次数分别为 \(x,y\),那么 \(p\) 的贡献次数为 \(x+y\)。并且还能发现子结构:\((l,r,x,y)\) 表示左端点为 \(l\),右端点为 \(r\),左右端点贡献次数分别为 \(x,y\),求中间部分最小代价。那么有转移:
\[f(l,r,x,y) \gets f(l,p,x,x+y)+f(p,r,x+y,y)+a_p(x+y)
\]
于是就可做了。
复杂度:\(O(n^32^n)\),因为 \(x+y \le 2^n\)。