4543 普通平衡树[未完结]

4543 普通平衡树

时间限制: 1 s

空间限制: 128000 KB

题目等级 : 大师 Master

题解

题目描述 Description

这是一道模板题。

如果觉得这个题水的可以做一下4544压行,是千古神犇花爸爸出的神犇题。

您需要写一种数据结构(可参考题目标题,但是这句话其实并没有什么用233),来维护一些数,其中需要提供以下操作:
1. 插入x数
2. 删除x数(若有多个相同的数,因只删除一个)
3. 查询x数的排名(若有多个相同的数,因输出最小的排名)
4. 查询排名为x的数
5. 求x的前驱(前驱定义为小于x,且最大的数)
6. 求x的后继(后继定义为大于x,且最小的数)

输入描述 Input Description

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

输出描述 Output Description

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

样例输入 Sample Input

10

1 10

1 10

1 10

1 10

1 10

1 10

1 10

1 10

1 10

1 10

样例输出 Sample Output

EOF(无输出)

数据范围及提示 Data Size & Hint

n=100000 所有数字均在-2*10^9到2*10^9内

其实n=5000000才对。。。但是为了不卡评测机

分类标签 Tags 点此展开

暂无标签

//未完结
#include<cstdio>
#include<algorithm>
#include<set>
using namespace std;
set<int>s;
set<int>::iterator it;
int main(){
    int n;
    scanf("%d",&n);
    for(int i=1,t,opt,x;i<=n;i++){
        scanf("%d%d",&opt,&x);
        t=0;
        if(opt==1){
            s.insert(x);
        }
        else if(opt==2){
            s.erase(x);
        }
        else if(opt==3){
            for(it=s.begin();it!=s.end();it++){
                //此处省略
            }
        }
        else if(opt==4){
            for(it=s.begin();it!=s.end();it++){
                if(++t==x){
                    printf("%d\n",*it);
                    break;
                }
            }
        }
        else if(opt==5){
            //此处省略
        }
        else if(opt==6){
            //此处省略
        }
    }
    return 0;
}
时间: 2024-08-03 10:25:55

4543 普通平衡树[未完结]的相关文章

CentOS系统优化脚本,未完结

#!/bin/bash #判断一个当前用户是不是root用户,不是则提示需要使用sudo来提升权限 if [ $user != "root"] then echo "需要使用 sudo 才能使用的脚本"] exit 1 fi #设置Selinux为关闭状态 sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config #下载一个CentOS的yum源 cd /usr/loc

未完结第八节 JBPM流程节点

1.12个节点介绍 2.Node节点

python未完结

python [[email protected] ~]# python --version      查看python版本 Python 2.7.5 [[email protected] ~]# python Python 2.7.5 (default, Feb 11 2014, 07:46:25) [GCC 4.8.2 20140120 (Red Hat 4.8.2-13)] on linux2 Type "help", "copyright", "c

表 未完结

顺序表的存储结构(数组) 顺序表基础操作的实现 顺序表的初始化 顺序表的取值 顺序表的查找 顺序表的插入 顺序表的删除 typdef struct { Element *elem; int length; } status InitList(SqList &L){L.elem = new Element[MAXSIZE];if(!L.elem) exit(OVERFLOW)L.length = 0;return Ok;} status GetList(SqList L,ElemType &

treap codevs 4543普通平衡树

#include<cstdio>#include<ctime>#include<cstdlib>struct shu{ int l,r,sum1,zhi,dui,sum2;}a[100006];int n,root,size,ans;void you(int &a1){ int t=a[a1].l; a[a1].l=a[t].r; a[t].r=a1; a[t].sum1=a[a1].sum1; a[a1].sum1=a[a[a1].l].sum1+a[a[a1

Shell操作之细节整理(未完结)

在学习Linux过程中,曾经遇到过一些小问题,虽然可能微不足道,但是在追求细节的时候往往会比较纠结(强迫症犯了),空出一个博客文章空间,记录一些细节上的内容,都是很小很简单的东西,不喜勿喷. 01.bc计算时浮点问题 记的用bc计算数字的时候,如果结果出现小数点,则小数点后内容默认不显示,当时没太在意. [[email protected] wangdong]# echo "1500/1024" | bc 1 [[email protected] wangdong]#  [[email

java 面试题汇总(未完结)

(未完结)软件开发模型比较

软件开发模型比较 软件开发模型是跨越整体软件生命周期的系统开发,测试.运维的全部工作和任务的结构框架,他给出了软件开发各个阶段之间的关系. http://blog.chinaunix.net/uid-11572501-id-2868606.html 瀑布模型:         常见开发模型有: 瀑布模型. 快速原型模型.增量模型.螺旋模型等,这里主要介绍瀑布模型:瀑布模型是一种自上而下对的模型. 瀑布模型将软件生命周期划分为制定计划.需求分析.软件设计.程序编写.软件测试和运维等六个基本活动.

#linux 命令使用 cp -未完结版

下载了sublime 解压之后,想把文件夹放到opt目录,这里用命令cp将其复制过来 [email protected]:~$ sudo cp -r ~/下载/Sublime_2.0.2 /opt/ [sudo] password for johnny: [email protected]-pc:~$ 本人用了中文的深度linux系统,所以有些文件夹是中文的字符. cp 的用法 用法:cp [选项]... [-T] 源文件 目标文件 或:cp [选项]... 源文件... 目录 或:cp [选项