线段树
文章平均质量分 64
dtwd886
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线段树成段更新模板-杭电1556
#include #include #include #define left L,m,rt<<1 #define right m+1,R,rt<<1|1 #define maxn 100050 int flag; int sum[maxn<<2]; void down(int rt) { if(sum[rt]) { sum[rt<<1]+=sum[rt]; sum[rt<<1|1]原创 2016-08-15 15:37:19 · 329 阅读 · 0 评论 -
区间最大值-杭电5124
#include #include #include #include #define maxn 200005 using namespace std; int sum[maxn<<2]; int col[maxn<<2]; struct node { int id,x; }a[maxn]; int num[maxn/2][2]; bool cmp(node X,node Y) { r原创 2016-08-22 11:56:59 · 479 阅读 · 0 评论 -
线段树成段更新-杭电4107
#include #include #include using namespace std; #define maxn 200010 struct node { int Max,Min; int flag; }num[maxn<<2]; int P; void Down(int rt) { if(num[rt].flag) { num[rt<<1].Max+=num[rt].f原创 2016-08-17 22:29:53 · 390 阅读 · 0 评论 -
线段树成段更新化为单点更新-杭电4027
#include #include #include #include using namespace std; #define maxn 100010 long long num[maxn<<2]; void up(int rt) { num[rt]=num[rt<<1]+num[rt<<1|1]; } void build(int L,int R,int rt) { if(L==R原创 2016-08-17 19:28:35 · 299 阅读 · 0 评论 -
线段树成段更新+延迟标记法-杭电3911
#include #include #include using namespace std; #define left L,m,rt<<1 #define right m+1,R,rt<<1|1 #define maxn 100010 struct node { int l1,l0; int r1,r0; int m1,m0; int flag; int l,r; }sum[m原创 2016-08-17 17:42:34 · 359 阅读 · 0 评论 -
线段树扫描线-杭电3255
#include #include #include #include #define maxn 160005 #define LL long long using namespace std; struct node { LL x1,x2,y; LL c,v; node(long long x1=0,long long x2=0,long long y=0,long long c原创 2016-08-17 15:06:04 · 238 阅读 · 0 评论 -
线段树区间交-杭电1255
#include #include #include #include using namespace std; #define maxn 10010 struct node { double x1,x2,y; int cover; node(double x1=0,double x2=0,double y=0,int cover=0):x1(x1),x2(x2),y(y),cove原创 2016-08-16 16:09:36 · 256 阅读 · 0 评论 -
线段树面积并-杭电1542
#include #include #include #include using namespace std; #define maxn 100010 struct node { double x1,x2,y; int cover; node(double x1=0,double x2=0,double y=0,int cover=0):x1(x1),x2(x2),y(y),c原创 2016-08-16 15:04:46 · 300 阅读 · 0 评论 -
线段树单点更新-杭电3874
#include #include #include #include using namespace std; #define maxn 200010 struct node { int r,l,pos; }p[maxn]; long long sum[maxn<<2]; int visit[1000010]; int a[50010]; long long num[maxn]; bo原创 2016-08-15 22:58:01 · 288 阅读 · 0 评论 -
线段树区间合并模板-杭电1540
#include #include #include #define maxn 50010 using namespace std; struct { int l; //记录左边界 int r; //记录右边界 int rl,ll,ml; //左边开始的最大连续长度, //以及右边开始的连续最大长度,还有整个区间的最大连续长度 }SegTree[maxn<<2]; int原创 2016-08-15 17:20:11 · 367 阅读 · 0 评论 -
线段树单点更新模板-杭电1166
#include #include #include using namespace std; #define LL long long #define left L,m,rt<<1 #define right m+1,R,rt<<1|1 LL num[200010]; void update(int rt) { num[rt]=num[rt<<1]+num[rt<<1|1]; } vo原创 2016-08-15 14:50:58 · 239 阅读 · 0 评论
分享