题意不说了,我的解法,将所有的牛的高度都置成H,那么当然询问一个[f,t]的时候,先看看 f 和 t 的高度是否符合,不符合的cut成符合的,即和t一样高。然后查看[f+1,t-1]区间里的最高的高度tem是多少,如果tem比f的高度要高的话,将整个[f+1,t-1]区间的高度都cut掉((tem-f的高度)+1).对线段树使用懒操作,这里一开始出现了错误,哎,maxt函数写错了。还是不太熟悉线段树,接着刷题
记住,如果对一个区间操作,那么肯定需要考虑 3个情况,进入3种不同的分支。切忌,也许你不懂的,哈哈
本文介绍了一种利用线段树解决区间更新问题的方法,并通过一个具体的例子详细展示了如何使用懒标记来优化线段树的操作。文章包含了完整的C++代码实现,有助于读者深入理解线段树及其懒标记的应用。

被折叠的 条评论
为什么被折叠?



