又是 機房最後乙個學spl
ay
splay
splay的人
參考d al
ao
dalao
dalao部落格
寫的非常好!
最後放上我的**:
(有個地方應該寫ch[
root
][0]
ch[root][0]
ch[roo
t][0
]手殘寫成ch[
root
][1]
ch[root][1]
ch[roo
t][1
]還查不出來t
tt成狗
#include
#include
#include
#include
#include
#define n 1000001
using
namespace std;
int n,ch[n][2
],f[n]
,siz[n]
,cnt[n]
,key[n]
,sz,root;
inline
intrd()
inline
void
clear
(int x)
inline
intget
(int x)
//找到x和f[x]的關係
inline
void
update
(int x)
}inline
void
rotate
(int x)
inline
void
splay
(int x)
inline
void
insert
(int x)
int now=root,fa=0;
while(1
) fa=now;
now=ch[now]
[key[now]
(now==0)
}}inline
intfind
(int x)
ans+
=cnt[now]
; now=ch[now][1
];}}
}inline
intfindx
(int x)}}
inline
intpre()
inline
intnxt()
inline
void
del(
int x)if(
!ch[root][0
]&&!ch[root][1
])//無兒子if(
!ch[root][0
])elseif(
!ch[root][1
])int lf=
pre(
),oldroot=root;
//兩個兒子
splay
(lf)
; ch[root][1
]=ch[oldroot][1
]; f[ch[oldroot][1
]]=root;
clear
(oldroot)
;update
(root)
;return;}
intmain()
if(opt==6)
}return0;
}
(模板)Splay 平衡樹
不會講解,直接上板子,按照洛谷p3369的要求 include include include using namespace std const int maxn 1000000 int ch maxn 2 f maxn size maxn cnt maxn key maxn int nodecn...
文藝平衡樹(splay模板)
題幹 splay模板,要求維護區間反轉。splay是一種碼量小於treap,但支援排名,前驅後繼等treap可求的東西,也支援區間反轉的平衡樹。但是有兩個壞處 1.splay常數遠遠大於treap以及stl中的set。2.沒有可持久化splay,但有可持久化treap。下面是 1.pushup以及p...
模板 文藝平衡樹(Splay)
這是一道經典的splay模板題 文藝平衡樹。輸入格式 第一行為n,m n表示初始序列有n個數,這個序列依次是 1,2,cdots n 1,n 1,2,n 1,n m表示翻轉操作次數 接下來m行每行兩個數 l,r l,r 資料保證 1 leq l leq r leq n1 l r n 輸出格式 輸出一...