python版线段树
来源:互联网 发布:cctv7观军事知天下视频 编辑:程序博客网 时间:2024/06/11 16:06
</pre><pre name="code" class="python">#coding=gbk#线段树class Tree(object):def __init__(self,l,r):self.l = lself.r = rself.value = 0self.left = Noneself.right = Noneif l < r:mid = (l + r)/2self.left = Tree(l,mid)self.right = Tree(mid+1,r)def set_value(self,p,value):if self.l == self.r:self.value = valuereturnmid = (self.l + self.r)/2if p <= mid:self.left.set_value(p,value)else:self.right.set_value(p,value)self.push_up()def push_up(self):self.value = self.left.value + self.right.valuedef query(self,x,y):print "query",x,y,'\t',(self.l + self.r)/2,'\t',self.l,self.r,self.valueif x <= self.l and y>=self.r:return self.valueif self.l == self.r:return self.valuemid = (self.l + self.r)/2if mid >= y:return self.left.query(x,y)elif mid < x:return self.right.query(x,y)else:return self.left.query(x,mid) + self.right.query(mid+1,y)def main():N = 1024import timeold =time.time()tree = Tree(0,N)for i in xrange(N+1):# print itree.set_value(i,1)print tree.query(30,60)print time.time() -oldif __name__ == "__main__":main()
0 0
- python版线段树
- Python 线段树
- 用Python实现的基本版的线段树
- Python 线段树求区间覆盖
- 【完全版】线段树
- 线段树 完全版
- 【完全版】线段树
- 【完全版】线段树
- 【完全版】线段树
- 【完全版】线段树
- 【完全版】线段树
- [完全版] 线段树
- 【完全版】线段树
- 【完全版】线段树
- 【完全版】线段树
- 【完全版】线段树
- 线段树完全版
- 【完全版】线段树
- 交叉熵(Cross-Entropy)
- The type java.lang.Object cannot be resolved.It is indirectly referenced from required .class files
- c#获取当前代码运行的文件名、运行的函数名以及当前代码执行的行号
- rtsp 保存MP4
- 键盘收回和拉起以及键盘的类型
- python版线段树
- Viewbadger消息提醒的实现
- iOS9 上支付宝AlipaySDK编译错误解决办法
- hive函数-regexp_extractd的例子
- swift函数入门
- 【技术】 NSUserDefaults的使用
- IOS模拟器上下部分黑屏(界面未占满)解决办法
- 揭开AssetBundle庐山真面目(二)
- 栈地址的分配和大小端模式