pbds平衡树整理
Posted yuhuger
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pbds平衡树整理相关的知识,希望对你有一定的参考价值。
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;
using namespace __gnu_pbds;
typedef pair<int,int> pii;
tree<pii,null_type,less<pii>,rb_tree_tag,tree_order_statistics_node_update> bbt;
int n;
int main(){
scanf("%d",&n);
for (int i=1,opt,k; i<=n; ++i){
scanf("%d%d",&opt,&k);
if (opt==1) bbt.insert(make_pair(k,i));
if (opt==2) bbt.erase(bbt.lower_bound(make_pair(k,0)));
if (opt==3) printf("%d
",bbt.order_of_key(make_pair(k,0))+1);
if (opt==4){
auto t=*bbt.find_by_order(k-1);
printf("%d
",t.first);
}
if (opt==5){
ans=*--bbt.lower_bound(make_pair(k,0));
printf("%d
",ans);
}
if (opt==6){
ans=*bbt.upper_bound(make_pair(k,n));
printf("%d
",ans);
}
}
}
洛谷P3369
以上是关于pbds平衡树整理的主要内容,如果未能解决你的问题,请参考以下文章
luogu P3369 模板普通平衡树(Treap/SBT) 题解 pb_ds