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\)

posted @ 2020-09-17 21:13  JiaZP  阅读(158)  评论(0编辑  收藏  举报