社区讨论
萌新求助平衡树pbdsAC一个点
P3369【模板】普通平衡树参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo7vako7
- 此快照首次捕获于
- 2023/10/27 08:20 2 年前
- 此快照最后确认于
- 2023/10/27 08:20 2 年前
Code :
CPP#include<bits/stdc++.h>
#include<ext/pb_ds/trie_policy.hpp>
#include<ext/pb_ds/hash_policy.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#include<ext/pb_ds/assoc_container.hpp>
#define pl puts("")
#define int long long
using namespace std;
using namespace __gnu_pbds;
using namespace __gnu_cxx;
inline int read()
{
int x=0,f=1;
char c=getchar();
while(!isdigit(c))
{
if(c=='-')
f=-1;
c=getchar();
}
while(isdigit(c))
x=x*10+c-'0',c=getchar();
return x*f;
}
void print(int x)
{
if(x<0)
x=-x,putchar('-');
if(x>9)
print(x/10);
putchar(x%10+'0');
}
int n,x,opt;
tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> tr;
signed main()
{
n=read();
for(int i=1;i<=n;i++)
{
opt=read(),x=read();
switch(opt)
{
case 1:tr.insert((x<<20)+i);break;
case 2:tr.erase(tr.lower_bound(x<<20));break;
case 3:print(tr.order_of_key(x<<20|1)),pl;break;
case 4:print(*tr.find_by_order(x-1)>>20),pl;break;
case 5:print(*--tr.lower_bound(x<<20)>>20),pl;break;
case 6:print(*tr.upper_bound((x<<20)+n)>>20),pl;break;
}
}
return 0;
}
哪位大佬能帮我看看哪里写错了吗/kk
回复
共 2 条回复,欢迎继续交流。
正在加载回复...