ZKW線段樹 學習總結

2021-09-25 17:03:12 字數 1070 閱讀 9178

zkw線段樹

詳見 清華大學 張昆瑋 《統計的力量》

類似線段樹的二進位制實現,支援單點修改和區間查詢,運用位運算,**非常簡單,作用類似樹狀陣列。

模板解析見** 可過洛谷 p3374 樹狀陣列模板 資料範圍 5e5

#include using namespace std;

const int n = 5e5+7;

int n, m, arr[n];

struct zkw_segmenttree

for(int rot = m; rot >= 1; rot--) //每個節點倒著走來pushup更新全部父親節點

}void add(int rot, int x) //單點修改 }

int enquiry(int l, int r) //查詢操作

return ans;

}}t;

int main()

return 0;

}

rmq版本:

#include using namespace std;

typedef long long ll;

const int n = 2e5 + 10;

double eps = 1e-11;

const ll inf = 0x3f3f3f3f3f3f3f3f;

int n, pos[n], arr[n], pre[n];

struct zkwsegtree

void update(int l, int r, double val)

for (; l > 1; l >>= 1)

tree[1] += tree[0], tree[0] = 0;

}double query(int l, int r)

}double ans = min(lans + tree[l], rans + tree[r]);

for (;l > 1;) ans += tree[l>>=1];

return ans;

}} t;

2023年7月30日

未完待續

線段樹和zkw線段樹

好啦,我們就開始說說線段樹吧 線段樹是個支援區間操作和查詢的東東,平時的話還是蠻實用的 下面以最基本的區間加以及查詢區間和為例 線段樹顧名思義就是棵樹嘛,葉子節點是每個基本點,它們所對應的父親就是它們的和,具體如下圖 但是對於這樣的線段樹來說,操作所需的時間是遠達不到我們的要求的 會被t 因為我們會...

zkw線段樹小結

zkw zkwzk w線段樹作為迴圈式線段樹具有較小的常數.其實樹狀陣列本質上就是線段樹 下標為 1,n 1,n 1,n 預處理乙個2 k n2 k n 2k n.然後總空間為2k 12 2k 1 2 k 1 4n 2 4n 2k 1 4n 後面令k 2 kk 2 k k 2k 那麼乙個葉子x xx...

鏈結 zkw線段樹

資料結構 走近zkw線段樹 一 資料結構 走近zkw線段樹 二 線段樹的擴充套件之 zkw線段樹 include define lc x x 1 define rc x x 1 1 using namespace std const int maxn 100005 int max int a,int...