题解:P5294 [HNOI2019] 序列
做法 0
注意到存在一种最优解可以将整个序列划分成若干个区间,每个区间内部的
因此可以设计 dp 维护这个过程,期望通过前
做法 1
不妨贪心维护划分。发现一个划分方案如果能拆就拆是优的,因此可以直接依次扫描,贪心维护划分方案。
具体而言,维护单调栈
支持信息合并只需维护
单次查询
做法 2
考虑用 ds 优化此过程。我们对称的从后往前做一次,则我们想要找出现在
描述出来相当于是
注意到合法的
时间复杂度
注意到存在一种最优解可以将整个序列划分成若干个区间,每个区间内部的
因此可以设计 dp 维护这个过程,期望通过前
不妨贪心维护划分。发现一个划分方案如果能拆就拆是优的,因此可以直接依次扫描,贪心维护划分方案。
具体而言,维护单调栈
支持信息合并只需维护
单次查询
考虑用 ds 优化此过程。我们对称的从后往前做一次,则我们想要找出现在
描述出来相当于是
注意到合法的
时间复杂度