线段树
KubeSpace
这个作者很懒,什么都没留下…
展开
-
hdu 1166(线段树)
#include using namespace std; int sgTree[200000]; int sums,num,cnt; int flag; void createTree(int s,int e,int c) { if(s==e) { scanf("%d",&sgTree[c]); return; } int mid=(s+e)/2;原创 2013-04-11 12:24:44 · 361 阅读 · 0 评论 -
hdu 1754 (线段树)I Hate It
这个是我的第一道线段树。 总之,看过理解了二分搜索树的,基本上,看这个线段树,没什么难度的。 把一个区间分成左右两个儿子。左儿子比父亲区间的中点小,右二子大。 比如,[1,10]为父亲节点,那么左儿子节点为[1,5],右儿子为[6,10]. 这样每个节点保存相应的数据。比如,此题保存为这段区间的最大分数。 总的时间为O(logN). #include using name原创 2013-04-10 15:09:07 · 452 阅读 · 0 评论 -
hdu 4027(线段树)Can you answer these queries?
这题,要判断一下每个区间是否已经被开完平方。否则会TLE #include #include using namespace std; __int64 sgTree[111111<<2]; __int64 s; int cov[100005<<2]; //判断这个区间的所有值是否已除尽。。。 void build(int l,int r,int rt) { cov原创 2013-04-22 14:18:23 · 425 阅读 · 0 评论 -
hdu 1394(线段树)
题目大意是:有一个序列,a1,a2,a3,...,an.然后有一对(ai,aj),iaj。称为反序列。 其中可以把k个数挪到an后面,即a(k+1),a(k+1),...,a(n),a(1),...,a(k). 那么,在所有的序列中,找出反序列对最少的个数。 具体思路:当加入一个数a[j]时,可以从1开始遍历,找出比a[j]大的数。O(n^2) 可以用线段树找出当加入a[j]时,比a[原创 2013-04-17 15:18:46 · 502 阅读 · 0 评论 -
hdu 2795(线段树)Billboard
一个矩形框,一个1*n的矩形条。它能放在矩形框的最上最左的的行数。 那么,可以用线段树,表示第(1~h)行的最大空余。直接在query的时候,更新,即减去新加的长度。 #include using namespace std; int sgTree[200005<<2]; int h,w,n,res; void build(int l,int r,int c) { if(l原创 2013-04-17 15:17:40 · 431 阅读 · 0 评论 -
hdu 1698(区间更新线段树)Just a Hook
只更新到所需要的区间,然后返回。下次,如果,继续要用这段区间的儿子节点,那么,就把这段区间更新到下面的儿子节点。 #include using namespace std; int sgTree[111115<<2]; int col[111115<<2]; void build(int l,int r,int c) { if(l==r) { sgTree[c]=1;原创 2013-04-17 20:42:37 · 415 阅读 · 0 评论 -
hdu 1542(线段树 求矩形面积并)Atlantis
终于A了。哈哈!! 思路大概就是把:所有的矩形分成横线,竖线。按照y轴排序,那么,此时就有了y轴所有横线的区间。就可以用线段树把所有区间分啊分的。。。 画个图,把一个矩形的左边标记为1,右边标记为-1。用cover值来表示一个区间是否有竖线覆盖。 很容易知道,当cover值是大于0的时候,那么有竖线覆盖此区间。 这时,只需要知道覆盖这段区间的x坐标的值,就可以求出面积了。 然后,更新这段原创 2013-04-21 20:08:58 · 492 阅读 · 0 评论 -
hdu 4288(线段树) Coder
首先要离散化!!!学习到了!!看过代码之后就会理解。。 这道题,难在线段树节点的维护。 每个节点即每个区间,cnt[rt]表示该区间的个数,sum[rt][5]表示该区间对5取余相同的数的和。 接下来就是怎么样pushUp(rt)了,即维护该节点: 该节点左孩子有cnt[rt 那么,sum[rt 要求的是对5求余为3的所有数的和。左孩子已经有cnt[rt 可以将cnt[rt 那么,原创 2013-05-20 19:11:04 · 442 阅读 · 0 评论