前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >P3369 【模板】普通平衡树(Treap/SBT)(pb_ds版)

P3369 【模板】普通平衡树(Treap/SBT)(pb_ds版)

作者头像
attack
发布2018-04-12 11:29:39
6020
发布2018-04-12 11:29:39
举报
文章被收录于专栏:数据结构与算法

题目描述

您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:

  1. 插入x数
  2. 删除x数(若有多个相同的数,因只删除一个)
  3. 查询x数的排名(若有多个相同的数,因输出最小的排名)
  4. 查询排名为x的数
  5. 求x的前驱(前驱定义为小于x,且最大的数)
  6. 求x的后继(后继定义为大于x,且最小的数)

输入输出格式

输入格式:

第一行为n,表示操作的个数,下面n行每行有两个数opt和x,opt表示操作的序号(1<=opt<=6)

输出格式:

对于操作3,4,5,6每行输出一个数,表示对应答案

输入输出样例

输入样例#1:

代码语言:javascript
复制
10
1 106465
4 1
1 317721
1 460929
1 644985
1 84185
1 89851
6 81968
1 492737
5 493598

输出样例#1:

代码语言:javascript
复制
106465
84185
492737

说明

时空限制:1000ms,128M

1.n的数据范围:n<=100000

2.每个数的数据范围:[-1e7,1e7]

来源:Tyvj1728 原名:普通平衡树

在此鸣谢

颓废的时候闲来无事研究一下pb_ds,,

想象一下在考场上别人花n个小时写平衡树调平衡树,而你五分钟就秒了的快感

代码语言:javascript
复制
 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 }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-07-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 输入输出格式
  • 输入输出样例
  • 说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档