线段树
文章平均质量分 80
zz_ylolita
这个作者很懒,什么都没留下…
展开
-
bzoj1798 AHOI2009seq
双标记线段树 因为乘除有优先级关系,所以每访问到一个节点就把这个节点的标记往下传。 pushdown中退出的条件是该点为叶子节点(p*2+1>tot) 但是要注意tot的计算,是在build中节点编号最大的那个为tot(因此WA了好几次。。) program seq; type point=record l,r,sum,mul,add:int64;//tag end;原创 2015-05-14 19:44:07 · 1192 阅读 · 1 评论 -
uva11992区间修改线段树
数据范围很大,但是可以每行建一个线段树,化为线性的 set的优先级高于add pushdown的时候相当于在add和sett中对一个整个的区间进行“赋值”一样,所以还要加上改sum,min1,max1的部分 三个询问可以一起做。。。 #include #include #include #include #include using namespace std; #define原创 2015-08-22 03:55:58 · 459 阅读 · 0 评论 -
poj1151矩形面积并
学习了一种新的离散化 第一次写有关线段的线段树 个人理解的扫描线:每添加一条边(或权值)就算当前这一部分的东西,然后再添加,一个循环 #include #include #include #include #include using namespace std; #define MAXN 200 int n,T,t; double x1,x2,y1,y2,ans; struct原创 2015-08-19 00:28:03 · 428 阅读 · 0 评论 -
poj3264
水一发线段树,顺便复习(骗经验)...宝宝还是想好好走下去^ ^ #include #include #include #include using namespace std; #define N 50010 int n,q,x,y,m1,m2; int a[N]; struct node{ int l,r,m1,m2,num; }tr[N*4]; void updata(in原创 2016-07-21 15:09:33 · 424 阅读 · 0 评论 -
hdu6430 Problem E. TeaTree 权值线段树 合并 暴力
新学到的权值线段树和它的合并,数组版的动态开点,以及如何估算线段树数组要开多大 敲开心~ 应该还要学怎么分裂。。。 关于权值线段树的讲解看这里:https://www.cnblogs.com/Mychael/p/8665589.html https://blog.csdn.net/Stupid_Turtle/article/details/80445998 不过这题也可以直接bitset...原创 2018-08-30 00:26:39 · 352 阅读 · 0 评论 -
CF1114F. Please, another Queries on Array?
没有注意到所有的因子都是300以内,注意到了也想不到这样就可以用集合来表示质数是否出现,从而直接计算出欧拉函数。 打标记的线段树在change的时候忘记pushdown了,调了一天orz #include <iostream> #include <cstdio> #include <string> #include &am原创 2019-02-12 23:43:57 · 340 阅读 · 0 评论