这类题目大概都是每次可以消除一个区间,并加上一些分数,然后合并左右。
这类题目的特点是区间外也会对区间的 dp 值产生影响,因此不能采用普通的区间 dp。
CF1107E Vasya and Binary String
考虑增加一维,\(f_{l,r,v}\) 表示 \(r\) 后面连着的一段长度为 \(v\) 的同色的(可能是删除一些后才连着),消除 \([l,r]\) 和后面连着的数的最大分数。考虑如何转移,发现有两种情况:
-
直接删掉 \(r\) 和后面连着的,此时有
\[f_{l,r,v}=f_{l,r-1,0}+a_{v+1} \] -
先删掉区间内的一个子区间,使 \(r\) 和前面某个同色的连上,枚举中间点 \(p\),此时有
\[f_{l,r,v}=\min\limits_{p=l}^{r-1} f_{l,p,v+1}+f_{p+1,r-1,0} \]
最终答案为 \(f_{1,n,0}\)。
P5336 [THUSC2016]成绩单
类似上题,\(f_{l,r,mx,mn}\) 表示 \(r\) 后面连着最大值 \(mx\),最小值 \(mn\) 的一段,发现数组开不下,因此记忆化搜索拿 map 存即可。
标签:后面,mn,同色,区间,一类,mx,dp From: https://www.cnblogs.com/lxy-2022/p/17224218.html