• BZOJ 3224: Tyvj 1728 普通平衡树 vector


    3224: Tyvj 1728 普通平衡树

    Description

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

    Input

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

    Output

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

    Sample Input

    10
    1 106465
    4 1
    1 317721
    1 460929
    1 644985
    1 84185
    1 89851
    6 81968
    1 492737
    5 493598

    Sample Output

    106465
    84185
    492737

    HINT

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

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

    Source

    题解:

    vector水过

    //meek///#include<bits/stdc++.h>
    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #include <string>
    #include <cstring>
    #include <algorithm>
    #include <queue>
    #include <map>
    #include <set>
    #include <stack>
    #include <sstream>
    #include <vector>
    using namespace std ;
    #define mem(a) memset(a,0,sizeof(a))
    #define pb push_back
    #define fi first
    #define se second
    #define MP make_pair
    typedef long long ll;
    
    const int N = 100005;
    const int inf = 99999999;
    const int mod= 1000000007;
    
    
    vector<int >s;
    
    int main() {
        int n,op,x;
        scanf("%d",&n);
        while(n--) {
            scanf("%d%d",&op,&x);
            if(op==1)
                s.insert(upper_bound(s.begin(),s.end(),x),x);
            if(op==2)
                s.erase(lower_bound(s.begin(),s.end(),x));
            if(op==3)
                printf("%d
    ",lower_bound(s.begin(),s.end(),x)-s.begin()+1);
            if(op==4)
                printf("%d
    ",s[x-1]);
            if(op==5)
                printf("%d
    ",*--(lower_bound(s.begin(),s.end(),x)));
            if(op==6)
                printf("%d
    ",*(upper_bound(s.begin(),s.end(),x)));
        }
    }
    代码
  • 相关阅读:
    VUE项目爬坑---3、vue route的编程式导航
    js的getBoundingClientRect的用法
    iphone真机开发流程之--证书申请
    提交App到Apple Store(Xcode4)
    iPhone应用提交流程:如何将App程序发布到App Store?
    反编译Apk得到Java源代码
    jquery mobile 自定义图标
    Phonegap通过JS访问本地接口的两种方法
    jQuery插件开发
    Android_HTML解析器_jsoup
  • 原文地址:https://www.cnblogs.com/zxhl/p/5063861.html
Copyright © 2020-2023  润新知