洛谷p3369 【模板】普通平衡樹
split採用按權
/*
author:revolia
submit:;
*/#includeusing namespace std;
typedef long long ll;
const int maxn=1e6+5;
int l[maxn],r[maxn],val[maxn],size[maxn];
int rom[maxn],cnt;
int root,opt,n,a,x,y,z;
void update(int x)
int new(int x)
void split(int u,int k,int &x,int &y)
if(val[u]<=k)x = u,split(r[u],k,r[u],y);
else y = u,split(l[u],k,x,l[u]);
update(u);
}int merge(int x,int y)
void push_down(int x)
int new(int x)
void split(int u,int k,int &x,int &y)
if(flag[u])push_down(u);
if(size[l[u]]bzoj1251: 序列終結者
和splay很像的操作
max維護區間最值,lazy區間加,flag區間翻轉標記
/*author:revolia
submit:;
*/#includeusing namespace std;
typedef long long ll;
const int maxn=1e5+5;
int l[maxn],r[maxn],val[maxn],size[maxn];
int rom[maxn],cnt;
int flag[maxn],lazy[maxn],max[maxn];
int root,opt,n,m,a,x,y,z;
void update(int x,int w)
void push_up(int x)
void push_down(int x)
if(lazy[x])
}int new(int x)
void split(int u,int k,int &x,int &y)
push_down(u);
if(size[l[u]]p3372 【模板】線段樹 1
果然,學了乙個東西看到啥都想去套一下、
/*author:revolia
submit:;
*/#includeusing namespace std;
typedef long long ll;
const int maxn=1e5+5;
int l[maxn],r[maxn],val[maxn],size[maxn];
int rom[maxn],cnt;
ll lazy[maxn],sum[maxn];
int root,opt,n,m,a,x,y,z;
void update(int x,int w)
void push_up(int x)
void push_down(int x)
}int new(int x)
void split(int u,int k,int &x,int &y)
push_down(u);
if(size[l[u]]else y = u,split(l[u],k,x,l[u]);
push_up(u);
}int merge(int x,int y)
push_down(y);
l[y] = merge(x,l[y]);
return push_up(y),y;
}int main()else
root = merge(merge(x,y),z);
}return 0;
}
fhq treap(無旋treap) 學習筆記
首先最好要會寫treap 也先了解一下笛卡爾樹是什麼。fhq treap和treap同樣有乙個隨機分配的rnd值,用於平衡,但fhq treap不需要旋轉操作來維持平衡,因為有兩個神奇的操作merge和split 在兩種操作之前,要明確的一點是fhq treap依靠rnd值來維護平衡,把每個點按照小...
演算法學習 FHQ Treap (無旋Treap)
fhq treap和普通的treap都是乙個二叉搜尋堆,其同時滿足二叉樹的性質 左子樹的權值小於等於當前節點權值,右子樹權值大於當前節點權值 和堆的性質 對於小根堆,當前節點的優先順序是堆中最小的 fhq treap與一般的treap的不同之處主要在於 不用旋轉,用split和merge來為維護堆的...
演算法學習 Fhq Treap(無旋Treap)
treap 大名鼎鼎的隨機二叉查詢樹,以優異的效能和簡單的實現在oier們中廣泛流傳。這篇blog介紹一種不需要旋轉操作來維護的treap,即無旋treap,也稱fhq treap。它的巧妙之處在於只需要分離和合併兩種基本操作,就能實現任意的平衡樹常用修改操作。而不需要旋轉的特性也使編寫 時不需要考...