数据结构
dahaiwuliangyao
这个作者很懒,什么都没留下…
展开
-
树状数组简单题(POJ2352,HDU1541)
POJ2352,HDU1541 Stars 给出N个点的X,Y坐标(按照Y升序,X升序的顺序给出),对于每个点输出有多少个点在该点的左下方。如图中的点5就有3个(1,2,4)点在它的左下方。 由于题目给出的数据已经是排好序的了,按照这个序列,一个点的左下方的点一定在它的前面出现。所以问题就转化成询问该点之前的所有点中有多少个点的X坐标小于等于该点X坐标。 所以只要先查询比X坐原创 2012-03-11 10:10:38 · 493 阅读 · 0 评论 -
树状数组简单题(HDU1166)
树状数组的基本作用就是 给一段数组,单点更新,成段求和。还有一些题是按照给出的结点顺序(或者需要按照某种需要排序)遍历,分别求出比当前结点的值小的结点数(有时也要把这些值的和求出来)。 需要注意的一点就是树状数组处理的不管是数组还是线段都是从1开始计数的,所以有些题目需要加1操作。 HDU1166 地兵布阵 此题是赤裸裸的树状数组,当然用线段树也是可以做的。 单点更新,成段求原创 2012-03-11 09:45:50 · 296 阅读 · 0 评论 -
树状数组-模板
一维树状数组 #define lowbit(x) ((x)&(-x)) #define M 1004 //线段的长度或处理的个数 int maxn,c[M]; void update(int p,int d) { while(p<=maxn){ c[p]+=d; p+=lowbit(p); } } int sum(int p) { int ans=0; while(p>0)原创 2012-03-10 19:18:05 · 250 阅读 · 0 评论 -
树状数组简单题(HDU1166)
树状数组的基本作用就是 给一段数组,单点更新,成段求和。还有一些题是按照给出的结点顺序(或者需要按照某种需要排序)遍历,分别求出比当前结点的值小的结点数(有时也要把这些值的和求出来)。 需要注意的一点就是树状数组处理的不管是数组还是线段都是从1开始计数的,所以有些题目需要加1操作。 HDU1166 地兵布阵 此题是赤裸裸的树状数组,当然用线段树也是可以做的。 单点更新原创 2012-03-11 09:46:38 · 221 阅读 · 0 评论 -
树状数组-简单题(HDU1166)
树状数组的基本作用就是 给一段数组,单点更新,成段求和。 还有一些题是按照给出的结点顺序(或者需要按照某种需要排序)遍历,分别求出比当前结点的值小的结点数(有时也要把这些值的和求出来)。 需要注意的一点就是树状数组处理的不管是数组还是线段都是从1开始计数的,所以有些题目需要加1操作。 HDU1166 地兵布阵 此题是赤裸裸的树状数组,当然用线段树也是可以做的。 单点更新,成段求和。原创 2012-03-11 09:44:23 · 257 阅读 · 0 评论