所以这是问题所在:给定一组间隔[a,b],其中a,b是整数,0 <= a
我的解决方法是使用细分树,其节点为
class Segnode:
def __init__(self,start,end):
self.start,self.end = start,end
self.left,self.right = None,None
self.layer,self.cover = 0,0
self.lazy = 0
其中layer记录有多少间隔覆盖此节点(例如:如果我们有一组[0,3),[1,3),[1,2),则Segnode(1,3)
将具有第2层,因为只有[0,3)和[1,3)完全覆盖了它); Cover记录此节点覆盖的部分的长度(例如,上一个示例中的Segnode(1,3)
将具有Cover 2)。
但是问题是我无法提出一种正确的LAZY更新树的方法(如果我们不使用延迟传播,那么这个问题就微不足道了,但是时间复杂度可能达到O(n),其中n可以每次操作为10 ^ 5)。有人可以帮我这部分吗?有没有正确,懒惰的方法?
非常感谢您。