我想在下面的链接中为延迟传播实现添加一个函数,它将范围设置为0.目前有一个update_tree函数,它增加了一个范围,但我不知道如何修改它这样它就可以在O(log(N))时间内将范围设置为零。
http://se7so.blogspot.com.au/2012/12/segment-trees-and-lazy-propagation.html
我正在考虑在每个节点上使用“lazy clear”标志,但是我怎么知道首先清除延迟添加或延迟添加然后清除(这将是清楚的)?
答案 0 :(得分:1)
在每个包含要处理的操作的节点上使用队列而不是标志,只要您使用FIFO数据结构,就可以确保它们按正确的顺序完成。除非我错过了这个问题的重点。