模板 線段樹

2022-05-07 22:21:15 字數 443 閱讀 1720

這裡是以區間最大值為例,要修改成其他的運算,注意修改每個函式的運算以及query中返回的無關值。

這裡的區間最大值設定的最小元素為-1(在query中表示與當前區間不相交的區間的結果)。

注意因為呼叫的方式傳入l與r是(1,n),所以這個線段樹(包括a)其實是從1開始計數的。

最後,小心爆maxm。

const int maxm=200000;

int a[maxm+5],st[(maxm<<2)+5];

inline void pushup(int o)

void build(int o,int l,int r)}

void update(int o,int l,int r,int id,int v)}

int query(int o,int l,int r,int a,int b)

線段樹模板(模板)

參考部落格 持續更新。外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 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...