P3369 【模板】普通平衡树(Treap/SBT)(pb_ds…
2018-06-17 22:08:57来源:未知 阅读 ()
题目描述
您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:
-
插入x数
-
删除x数(若有多个相同的数,因只删除一个)
-
查询x数的排名(若有多个相同的数,因输出最小的排名)
-
查询排名为x的数
-
求x的前驱(前驱定义为小于x,且最大的数)
- 求x的后继(后继定义为大于x,且最小的数)
输入输出格式
输入格式:
第一行为n,表示操作的个数,下面n行每行有两个数opt和x,opt表示操作的序号(1<=opt<=6)
输出格式:
对于操作3,4,5,6每行输出一个数,表示对应答案
输入输出样例
10 1 106465 4 1 1 317721 1 460929 1 644985 1 84185 1 89851 6 81968 1 492737 5 493598
106465 84185 492737
说明
时空限制:1000ms,128M
1.n的数据范围:n<=100000
2.每个数的数据范围:[-1e7,1e7]
来源:Tyvj1728 原名:普通平衡树
在此鸣谢
颓废的时候闲来无事研究一下pb_ds,,
想象一下在考场上别人花n个小时写平衡树调平衡树,而你五分钟就秒了的快感
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<ext/pb_ds/tree_policy.hpp> 6 #include<ext/pb_ds/assoc_container.hpp> 7 #include<algorithm> 8 #define lli long long 9 using namespace std; 10 using namespace __gnu_pbds; 11 void read(lli &n) 12 { 13 char c='+';lli x=0;bool flag=0; 14 while(c<'0'||c>'9'){c=getchar();if(c=='-')flag=1;} 15 while(c>='0'&&c<='9'){x=x*10+(c-48);c=getchar();} 16 flag==1?n=-x:n=x; 17 } 18 tree<lli,null_type,std::less<lli>,splay_tree_tag,tree_order_statistics_node_update>st; 19 int main() 20 { 21 ios::sync_with_stdio(0); 22 lli T; 23 lli ans,x,y; 24 cin>>T; 25 for(lli i=1;i<=T;i++) 26 { 27 28 //read(x);read(y); 29 cin>>x>>y; 30 if(x==1) st.insert((y<<20)+i); 31 else if(x==2)st.erase(st.lower_bound(y<<20)); 32 else if(x==3)printf("%lld\n",st.order_of_key(y<<20)+1); 33 else 34 { 35 if(x==4)ans=*st.find_by_order(y-1); 36 if(x==5)ans=*--st.lower_bound(y<<20); 37 if(x==6)ans=*st.lower_bound((y+1)<<20); 38 printf("%lld\n",ans>>20); 39 } 40 } 41 return 0; 42 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:C++基础算法学习——熄灯问题
下一篇:1250 Fibonacci数列
- C++冒泡排序 (基于函数模板实现) 2020-05-31
- C++ 模板类vector 2020-05-31
- C++ 模板类array 2020-05-31
- C++ 模板类vector 2020-05-30
- 单调队列模板【附例题】 2020-05-05
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash