
树状数组+线段树
ACM_devil
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树状数组
今天刚刚接触树状数组,有点晕。主要是对那个lowbit的原理还不是很清楚。树状数组百度百科如果给定一个数组,要你求里面所有数的和,一般都会想到累加。但是当那个数组很大的时候,累加就显得太耗时了,时间复杂度为O(n),并且采用累加的方法还有一个局限,那就是,当修改掉数组中的元素后,仍然要你求数组中某段元素的和,就显得麻烦了。所以我们就要用到树状数组,他的时间复杂度为O(lgn),相比之下就快原创 2013-07-17 21:39:33 · 935 阅读 · 2 评论 -
HDU4417-树状数组2012 ACM/ICPC Asia Regional Hangzhou Online
题目:题目链接这道题目的意思是给你一个数组。然后有m次询问。每次询问某个区间内小于给定值H的有多少?典型的树状数组: 离线 树状数组 1、若 a[i].h > q[j].h,则从 i 以后的 a[i].h 也不会再对这个查询的解有影响。此时我们可以得到这个查询的解 getsum(r) - getsum(l-1) 。 2、若 a[i].h 1,然原创 2013-08-03 14:49:20 · 979 阅读 · 0 评论 -
HDU4217-线段树
题目:题目链接 题意:题目意思就是给你1--N的数,然后在给出K个数,每次取出地Ki小的数字,取完之后把这个数字去掉,问最后取出的这K个数字的总和是多少? 分析:以前没有接触线段树之类的,碰到的话肯定会直接暴力写,必T无疑,接触线段树,那么这种题目还是得用线段树来写。对线段树不熟,这道题目就是一个模版题吧: #include #include #include #原创 2013-08-29 15:54:07 · 712 阅读 · 0 评论 -
POJ3067树状数组
题目:题目链接 题意:有两排城市,这两排之间有一些城市之间有连接的道路,给出所有道路,问有多少道路是相交的。 分析:求逆序数。我们先把所有的道路按照a升序,a相同时b升序的方法排列。这样从头至尾便利,对于每条道路,我们只需要知道它之前有多少道路的b大于它的b就可以了,所以我们只要知道前面有多少b小于等于它的再用下标减去就可以了。而这个求有多少小于等于的过程就用树状数组来原创 2013-09-14 21:17:29 · 799 阅读 · 0 评论 -
POJ1195-二维数组
题目:题目链接 题意:实现操作:1.add(x,y,a).对二维数组的第x行,第y列加上a.2.sum(l,b,r,t).求所有满足l 分析:见证了二维树状数组,这应该算是很水很水的二维树状数组了吧。表示数据结构强大 代码:#include #include #include #include #include #include #include原创 2013-09-29 22:00:46 · 839 阅读 · 0 评论 -
POJ2481树状数组
题目:题目链接 题目:就是按照题目的判断条件,判断对于每一cow,有多少个cow比它stronger。 分析:100000头cow,如果直接for必须超,又是要用到树状数组来节省时间。按照每一个COW的左右坐标排序,这样就可以比较了,后面的比较就可以参照前面的比较结果。这样一步一步的比较非常节省时间: 代码:#include #include #include原创 2013-09-18 15:45:50 · 749 阅读 · 0 评论 -
POJ2352树状数组
题目:题目链接 题意:就是给出你N个星星的坐标,按照题目给出的规则计算不同等级的星星各自有多少个? 分析:我们每次得到一个星星的坐标之后就需要更新和这个星星相关的星星的等级,15000个星星,那么避免超时,就需要使用树状数组。每次把当前星星的X坐标之后的数量加1即可add((x+1), 1);,最后输出统计数目: 代码:#include #include #in原创 2013-09-18 14:05:12 · 724 阅读 · 0 评论 -
POJ3468树状数组
题目:题目链接 题意: The first line contains two numbers N and Q. 1 ≤ N,Q ≤ 100000. The second line contains N numbers, the initial values of A1, A2, ... , AN. -1000000000 ≤ Ai ≤ 1000000000. Ea原创 2013-09-23 22:44:03 · 831 阅读 · 0 评论