链接:https://www.nowcoder.com/acm/contest/214/F
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld

题目描述

clccle是个蒟蒻,她经常会在学校机房里刷题,也会被同校的dalao们虐,有一次,她想出了一个毒瘤数据结构,便兴冲冲的把题面打了出来,她觉得自己能5s内切掉就很棒了,结果evildoer过来一看,说:"这思博题不是1s就能切掉嘛",clccle觉得自己的信心得到了打击,你能帮她在1s中切掉这道水题嘛?

你需要写一个毒瘤(划掉)简单的数据结构,满足以下操作
1.插入一个数x(insert)
2.删除一个数x(delete)(如果有多个相同的数,则只删除一个)
3.查询一个数x的排名(若有多个相同的数,就输出最小的排名)
4.查询排名为x的数
5.求一个数x的前驱
6.求一个数x的后继

输入描述:

第一行,输入一个整数n,表示接下来需要输入n行接下来n行,输入 一个整数num和一个整数x

输出描述:

当num为3,4,5,6时,输出对应的答案

示例1

输入

复制

8
1 10
1 20
1 30
3 20
4 2
2 10
5 25
6 -1

输出

复制

2
20
20
20

说明

大家自己手玩样例算了QWQ

备注:

对于全部数据n<=1e5,且3,4,5,6的操作数少于60000输入数据可能很多,推荐使用快读

好像是个平衡树的板子题

但是平衡树还没写过啊....

刚开始想用multiset实现

但是mutilset的树结构关系 迭代器只重载了自加自减

无法随机查询

洗衣服的时候突然想到LIS的有序表插入

这道题用有序表加vector的各种操作应该可以实现

结果交了一发竟然过了

时间复杂度:

随机查询O(1)

按值查询O(log2n)  //lower/upper_bound()

后插O(1)   //arr.push_back()

中间插入平均O(n/2) //arr.insert(vector<int>::iterator it, val);

时间复杂度尚可接受

代码↓

//#pragma GCC optimize(2)
#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <string>
#include <cstring>
#include <algorithm>
#include <stack>
#include <queue>
#include <set>
#include <sstream>
#include <map>
#include <ctime>
#include <vector>
#include <fstream>
#include <list>
#include <iomanip>
#include <numeric>
using namespace std;
typedef long long ll;const int MAXN = 1e6 + 10;std::vector <int> arr;int main()
{//ios::sync_with_stdio(false);//cin.tie(0);     cout.tie(0);//freopen("D://test.in", "r", stdin);//freopen("D://test.out", "w", stdout);int n, a, b;scanf("%d", &n);vector <int>::iterator it;while(n--){   scanf("%d%d", &a, &b);if(a == 1){it = lower_bound(arr.begin(), arr.end(), b);arr.insert(it, b);}else if(a == 2){it = lower_bound(arr.begin(), arr.end(), b);arr.erase(it);}else if(a == 3){  it = lower_bound(arr.begin(), arr.end(), b);printf("%d\n", it - arr.begin() + 1);  }else if(a == 4){printf("%d\n", arr[b - 1]);}else if(a == 5){it = lower_bound(arr.begin(), arr.end(), b);it--;printf("%d\n", *it);}else if(a == 6){it = upper_bound(arr.begin(), arr.end(), b);printf("%d\n", *it);}}return 0;
}

牛客小白月赛8 F-数列操作 (有序表)相关推荐

  1. 牛客小白月赛61 F.选座椅(双指针)

    牛客小白月赛61 F.选座椅(双指针) 显然 ( l , r ) (l,r) (l,r)满足 ( l , r + 1 ) (l,r+1) (l,r+1)满足. 那么可以考虑双指针,枚举 l l l,然 ...

  2. 牛客小白月赛2 F.黑黑白白

    牛客小白月赛2 F.黑黑白白 题目链接 题目描述 艮为山,动静得宜,适可而止:兑为泽,刚内柔外,上下相和. 艮卦:兼山,艮:君子以思不出其位.财帛常打心头走,可惜眼前难到手,不如意时且忍耐,逢着闲事休 ...

  3. 牛客小白月赛12 F 华华开始学信息学 (分块+树状数组)

    链接:https://ac.nowcoder.com/acm/contest/392/F 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语言65536 ...

  4. 牛客小白月赛9: F. 暴力出奇迹(思维题)

    链接:https://ac.nowcoder.com/acm/contest/275/F 来源:牛客网 题目描述 给定一个序列,寻找一对l,r,满足1 ≤ l ≤ r ≤ n 最大化的值 其中表示将a ...

  5. 牛客小白月赛17 F小黄鸭(计算几何+积分+二分)

    链接:https://ac.nowcoder.com/acm/contest/1085/F 来源:牛客网 题目描述 小sun的寝室有一只小黄鸭,小黄鸭浮在水面上的样子特别可爱,现在小sun有一个问题: ...

  6. 牛客小白月赛17 F小黄鸭(计算几何+积分+二分)

    题目链接:https://ac.nowcoder.com/acm/contest/1085/F 题解: 根据,,可得① 球的正视图是个圆心为(0,r),半径为r的圆,方程为② 侵入水中的体积: 体积公 ...

  7. F.孤独(牛客小白月赛39)

    F.孤独(牛客小白月赛39) 题意: 给定一棵树,寻找一个路径,将断掉所有与这个路径上的点相连的边,使得剩下的最大连通块的大小最小 题解: 这题有点印象,感觉做过,至少这个方法肯定遇到过 设dp[u] ...

  8. 牛客小白月赛3 C.博弈

    牛客小白月赛3 C.博弈 题目链接 题目描述 XHRlyb 在和 Cwbc 玩游戏. 在一个多重集合中有在 [l,r] 中的全部整数各一个,即 l,l+1,l+2,......,rl,l+1,l+2, ...

  9. 牛客小白月赛65个人题解A-E

    1. 牛客小白月赛65 A. 牛牛去购物 题意:给定n元,购买价格为a元的篮球和价格为b的篮球,数量不定,要使得花掉的钱最多,也就是剩余的钱数最少,求这个值 (1 <= n, a, b < ...

最新文章

  1. Day 49 Nginx
  2. Python标准库:内置函数dict(mapping, **kwarg)
  3. Oracle编程入门经典 第7章 表
  4. boost安装_编译安装Mysql详细步骤
  5. 性能测试之性能测试的基础理论
  6. linux上安装hackrf_在Linux上安装Kubectl
  7. LeetCode 662 二叉树最大宽度
  8. unity3d 鼠标延各个方向拖拽物体
  9. 日志级别_SpringBoot实战(十三):Admin动态修改日志级别
  10. Linux2.6内核本地提权
  11. 将Tomcat集成到eclipse中并写出第一条web语句
  12. AVRNET 学习笔记UDP部分
  13. ztree 修改样式_zTree样式修改
  14. 计算机代数与数论pdf,基础数论算法 - maTHμ - 计算机代数系统.pdf
  15. IT行业常见职位英语缩写及中文释义
  16. google code jam 2008 Mousetrap (逆向)
  17. Zynga旗下魔法三消手机游戏《Harry Potter: Puzzles Spells》邀请玩家一起参加最新推出的游戏内系列活动——俱乐部挑战赛
  18. EBS创建会计科目请求报错问题查询
  19. CSS+SVG实现简单的点赞效果
  20. SpringJpa @query 中根据传入参数(字段)排序

热门文章

  1. CentOS7安装K8S V1.23.3
  2. Compose Multiplatform 实战:联机五子棋
  3. P1875 佳佳的魔法药水
  4. react 搭建本地开发环境
  5. JS正则表达式完整版
  6. 使用视频作为网页背景的写法
  7. Android面试题(25)-Bundle机制
  8. mAPI软件升级到v1.4.0(正式版)
  9. 计算机屏幕显示不能全屏,电脑显示器不能全屏显示的解决方法步骤
  10. @EnableConfigurationProperties 的作用