仙居网站制作,婚纱网站模板,达州住房和城乡建设厅网站,邢台信息港最新二手房出售信息这个博主的线段树我觉得讲的很细了 文章目录建树区间查询#xff0c;单点修改区间修改#xff0c;单点查询区间修改#xff0c;区间查询#xff08;带pushdown#xff09;乘法线段树根号线段树建树
struct node{ll l,r;ll sum,mlz,plz;
}tree[4*maxn];
inline void bulid…这个博主的线段树我觉得讲的很细了
文章目录建树区间查询单点修改区间修改单点查询区间修改区间查询带pushdown乘法线段树根号线段树建树
struct node{ll l,r;ll sum,mlz,plz;
}tree[4*maxn];
inline void bulid(int i,int l.int r)
{tree[i].l1;tree[i].rr;if(lr){tree[i].suminput[i];return ;}int min(lr)1;bulid(i*2,l,min);bulid(i*21,min1,r);tree[i].sumtree[i*2].sumtree[i*21].sum;
}区间查询单点修改
inline int search(int i,int l,int r){if(tree[i].lltree[i].rr)return tree[i].sum;if(tree[i].rl||tree[i].lr)return 0;int sum0;if(tree[i*2].rl)sumsearch(i*2,l,r);if(tree[i*21].lr)sumsearch(i*21,l,r);return sum;
}
inline void add(int i,int dis,int k)
{if(tree[i].ltree[i].r){tree[i].sumk;return;}if(distree[i*2].r)add(i*2,dis,k);else add(i*21,dis,k);tree[i].sumtree[i*2].sumtree[i*21].sum;return ;
}区间修改单点查询
inline void add(int i,int l,int r,int k)
{if(tree[i].lltree[i].rr){tree[i].numk;return;}if(tree[i*2].rl)add(i*2,l,r,k);if(tree[i*21].lr)add(i*21,l,r,k);
}
void search(int i,int dis){anstree[i].num;if(distree[i*2].r)search(i*2,dis);if(distree[i*21].l)search(i*21,dis);
} 区间修改区间查询带pushdown
void push_down(int i)
{if(tree[i].lz){tree[i*2].lztree[i].lz;tree[i*21].lztree[i].lzint mid(tree[i].ltree[i].r)/2;tree[i*2].sumtree[i].lz*(mid-tree[i*2].l1);tree[i*21].sumtree[i].lz*(tree[i*21].r-mid);tree[i].lz0;}return 0;
}
void add(int i,int l,int r,int k){if(tree[i].rrtree[i].ll){tree[i].sumk*(tree[i].r-tree[i].l1);tree[i].lzk;return;}push_back(i);if(tree[i*2].rl)add(i*2,l,r,k);if(tree[i*21].lr)add(i*21,l,r,k);tree[i].sumtree[i*2].sumtree[i*21].sum;return 0;
}
inline int search(int i,int l,int r){if(tree[i].lltree[i].rr)return tree[i].sum;if(tree[i].rl||tree[i].lr)return 0;push_back(i);int sum0;if(tree[i*2].rl)sumsearch(i*2,l,r);if(tree[i*21].lr)sumsearch(i*21,l,r);return sum;
}乘法线段树
根号线段树