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...