P3372 【模板】线段树 1
Miku ------------------------ 线段是是一种非常重要的数据结构,尤其在暴力时候 ------------------------- 线段树我觉得就是一个暴力的暴力的暴力数据结构,支持许多操作,比如说最大值,最小值,区间加,区间和等 ------------------------ 线段树的优化关键在于一个懒标记 ------------------------ 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 using namespace std; 5 struct kk{ 6 int l,r;//每一个节点包含的左右区间 7 long long add,tql;//每一个节点的lazy和区间和 8 }t[10000005]; 9 long long n,m,a[10000005],p,x,y,pp; 10 void build(int x,int y,int z){ 11 t[x].l=y; t[x].r=z;//这个点的控制的左右区间 12 if(y==z){//一开始,只有叶节点赋值 13 t[x].tql = a[y]; 14 return ; 15 } 16 int midd =(y+z)>>1;//中间点,因为线段树就是从中间开始分裂的 17 build(2*x