题意分析
我们用\(f[i][j]\)表示当前到达第\(i\)个位置水位高度为\(j\)的答案
如果那么\(h[i]\)为\(i\)和\(i+1\)之间的支柱高度
那么如果\(j≤h[i]\)的话
\(f[i+1][0...h[i]]=max\{f[i][0...h[i]]\}\)
否则的话 直接让\(f[i+1][j]=f[i][j]\)
发现第二种可以直接继承
第一种可以区间求\(max\)然后区间\(max\)覆盖
使用线段树维护
同时满足限制的话使用区间加
CODE:
#include #include #include #include #include #include #include #include #include
HEOI 2019 RP++