裁剪序列

这道题目感觉还可以这么做(没试,有空了试一下)

尝试利用数据结构优化

看转移方程:

\[f[i]=min_{sum_i-sum_j≤M}(f[j]+max_{j+1≤k≤i}(A_k)) \]

显然当\(i\)加一后,可以利用单调栈去找那些\(j\)的后面一项贡献max要改变,再利用线段树维护即可

update 2024.9.8

书上说的DP转移优化的指导思想感觉比较重要,\(\max/\min\)转移考虑突变点是这种思想的一个具体体现

posted @ 2024-07-05 12:42  最爱丁珰  阅读(12)  评论(0)    收藏  举报