社区讨论

萌新求助平衡树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 条回复,欢迎继续交流。

正在加载回复...