線段樹 模板 待檢驗

2021-09-25 03:51:00 字數 909 閱讀 2514

const int maxn=50010;

int a[maxn],ans[maxn<<2],lazy[maxn<<2];

//a為原序列資訊,ans模擬線段樹維護區間和,lazy為懶惰標記

void pushup(int rt)

void build(int l,int r,int rt)

int mid=(l+r)>>1;

build(l,mid,rt<<1);

build(mid+1,r,rt<<1|1);

pushup(rt);

}void pushdown(int rt,int ln,int rn)//ln表示左子樹元素結點個數,rn表示右子樹結點個數

}void add(int l,int c,int l,int r,int rt)

int mid=(l+r)>>1;

//pushdown(rt,mid-l+1,r-mid); 若既有點更新又有區間更新,需要這句話

if (l<=mid)

add(l,c,l,mid,rt<<1);

else

add(l,c,mid+1,r,rt<<1|1);

pushup(rt);

}void update(int l,int r,int c,int l,int r,int rt)

int mid=(l+r)>>1;

pushdown(rt,mid-l+1,r-mid);

if (l<=mid) update(l,r,c,l,mid,rt<<1);

if (r>mid) update(l,r,c,mid+1,r,rt<<1|1);

pushup(rt);

}ll query(int l,int r,int l,int r,int rt)

線段樹模板(模板)

參考部落格 持續更新。外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img xhrgdjcd 1613976863463 區間儲存在陣列中的下標對應為 12 3 4 5 6 7 8 9 10 11 12 13 14 15 四部分單點更新 根據題目的要求編寫自己的pushup,query...

線段樹模板

include include include using namespace std const int size 10010 struct node the node of line tree class linetree void updatem void updateline public ...

線段樹模板

單點更新,區間求最值 include include include include include define n 222222 using namespace std int num n struct tree tree n 4 void push up int root void build...