树状数组
Vincent's Blog
A bug machine made in HUST
展开
-
树状数组
1.什么是树状数组树状数组用来求区间元素和有着非常高的效率,求一次区间元素和的时间效率为O(logn), 平常我们会遇到一些对数组进行维护查询的操作,常见的有修改某点的值、求某个区间的和,这两种是树状数组的强项!当然,数据规模不大的时候,对于修改某点的值是非常容易的,复杂度是O(1),但是对于求一个区间的和就要扫一遍了,复杂度是O(N),如果实时的对数组进行M次修改或求和,最坏的情况下复杂度是O(M原创 2016-07-26 23:19:13 · 294 阅读 · 0 评论 -
【C】x&(-x)的返回结果分析
对于任意一个整数,x&(-x)表示x与-x按位与,其结果如下(这里假设为正整数或0,对于负整数,结论显然是一样的):若x为奇数,x&-x的结果为1。若x为0,x&-x的结果为0。若x为偶数,且x<=2m<2m+1x<=2^m<2^{m+1},则x&-x的结果为m。分析:1.x为奇数若x为奇数,则表示x的内存单元最后一位必然为1,对x取反码则反码的最后一位为0,x的反码加1得到补码,由于最后一原创 2016-07-26 10:27:10 · 1401 阅读 · 0 评论