zoukankan      html  css  js  c++  java
  • 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)));
        }
    }
    代码
  • 相关阅读:
    T100——MENU按钮
    vue 打包问题
    Python: 什么是*args和**kwargs
    windows服务器下部署Apache+Flask+Mod_wsgi+Vue
    树莓派 端口被占用的解决方案
    mac 终端命令总结
    Home Assistant 发现小米设备
    树莓派基于Home Assistant 查询在网设备
    Linux 命令集合-vim
    mac上的hassbian 启动报错1
  • 原文地址:https://www.cnblogs.com/zxhl/p/5063861.html
Copyright © 2011-2022 走看看