线段树
文章平均质量分 79
Polya_Xue
这个作者很懒,什么都没留下…
展开
-
hdu3333(线段树求不同数字之和)
普通的数组,普通的给区间求和,然而这道题要不同的数字,也就是如果有重复数字不能加入到和中 不能有重复数字那么给线段树中加一个数字,如果有重复的那之前的就要删掉 那么查区间的时候怎么办呢 在新的数字v[n]有效前把前n个数字和(需要查询的)先算出来 所以先给区间们排序,每次查之前构造范围内的线段树 // // main.cpp // 3333 //原创 2017-07-26 22:45:26 · 455 阅读 · 0 评论 -
线段树poj3667
线段树 Query,查找符合题意得最左端的点,当tree[ttree[t=x,就返回左儿子rsum的起始点,否则递归走向右儿子 #include #include #define Max 4*100000 #define Mid(x,y)(x+y)>>1//(x+y)/2 int A[Max]; struct hello { int l; i原创 2017-05-17 23:07:01 · 176 阅读 · 0 评论 -
hdu1166线段树
线段树, if(r find(l,r,k*2); else if(l>mid) find(l,r,k*2+1); 这个地方需要注意一下, #include #include #include using namespace std; int n,sum; char s[10]; struct node { int l原创 2017-05-23 23:06:52 · 159 阅读 · 0 评论 -
hdu1698线段树
不知道怎么拖啊拖啊,三天前写的代码今天A了,然后。。。想说什么都不太记得起来了 这次的value值用来记录叶子们的颜色,如果叶子们是同色就记颜色,不同色就记-1,再由叶子们去解决颜色 计算的时候只要(a[i].r-a[i].l+1)*a[i].value就行了 什么时候我可以完全由自己写出一道不水的线段树题呢 感觉这道题蛮好,很灵活 #include #include原创 2017-06-12 11:14:10 · 164 阅读 · 0 评论 -
hdu1556(线段树)
题意: N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a Input 每个测试实例第一行为一个整数N,(N 当N = 0,输入结束。 Output 每个测试实例输出一行,包括N个整数,第I个数代表第I个气球总共被涂色的次数。 Sample Input 3 1 1原创 2017-07-19 11:03:04 · 241 阅读 · 0 评论 -
hdu1542(线段树求面积)
看了好久,最后只好在纸上模拟才懂 http://blog.csdn.net/sunmenggmail/article/details/7984589 这里的图不错 讲解在代码里 // // main.cpp // wall // // Created by Mr.Xue on 17/7/20. // Copyright © 2017原创 2017-07-20 16:53:03 · 207 阅读 · 0 评论 -
hdu1255(线段树两次覆盖以上面积)
问覆盖两次以上的面积 在求覆盖面积的基础上稍加改进 分情况讨论 1.cnt>1 : 说明该区间被覆盖两次或以上,那么长度就可以直接计算,就是该区间的长度 剩下的情况就是cnt=1或cnt=0 2.先看叶子节点,因为是叶子没有孩子了,所以被覆盖两次货以上的长度就是0(无论cnt=1或cnt=0都是0,因为是叶子。。。) 3.不是叶子节点 ,且cnt=1.注原创 2017-07-20 22:03:10 · 639 阅读 · 0 评论 -
hdu1540(线段树)
先贴代码 http://www.cnblogs.com/scau20110726/archive/2013/05/07/3066009.html #include #include #include using namespace std; #define lch(i) ((i)1) #define rch(i) ((i)1|1) #de原创 2017-07-21 16:46:00 · 448 阅读 · 0 评论 -
hdu1543( 大范围刷新区间颜色)
题意是给一个给定一个范围刷颜色,然后又一范围刷另一种颜色(可能会覆盖之前的color),问最后有几种颜色和分别的面积 肯定立刻会想到二维区间跟新,然而这道题总范围10000*10000,内存超限 所以换一种记录方式,将每一个范围起末坐标记录下来并放到两个数组中(横坐标纵坐标分开),排序 然后遍历每一个范围,对于这个范围的起末横纵坐标找到在XY中对应的标号,然后 fo原创 2017-07-26 16:08:05 · 219 阅读 · 0 评论 -
线段树h1754
应为数组开小了导致的结果居然是超时 线段树,有建立,修改,查找 // // main.cpp // h1754 // // Created by Mr.Xue on 17/3/2. // Copyright © 2017年 Mr.Xue. All rights reserved. // #include #inclu原创 2017-03-04 16:08:09 · 162 阅读 · 0 评论