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

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

这道题就是充分使用lower_bound()函数和upper_bound()函数。迭代器的使用也很重要。

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
#include<set>
#include<map>
#include<queue>
#define pi acos(-1)
#define For(i, a, b) for(int (i) = (a); (i) <= (b); (i) ++)
#define Bor(i, a, b) for(int (i) = (b); (i) >= (a); (i) --)
#define max(a,b) (((a)>(b))?(a):(b))
#define min(a,b) (((a)<(b))?(a):(b))
#define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1 | 1
#define eps 1e-7
using namespace std;
typedef long long ll;
const int maxn = 100 + 10;
const int INF = 0x3f3f3f3f;
const double EPS = 1e-10;
const ll mod = 1e9 + 7;
inline int read(){int ret=0,f=0;char ch=getchar();while(ch>'9'||ch<'0') f^=ch=='-',ch=getchar();while(ch<='9'&&ch>='0') ret=ret*10+ch-'0',ch=getchar();return f?-ret:ret;
}
int n;
int main(){scanf("%d",&n);vector <int> q;vector <int> :: iterator it;while(n--){int num, x;scanf("%d%d",&num,&x);if(num == 1)q.insert(lower_bound(q.begin(), q.end(), x), x);else if(num == 2)q.erase(lower_bound(q.begin(), q.end(),x));else if(num == 3)printf("%d\n",lower_bound(q.begin(),q.end(),x)-q.begin() +1);else if(num == 4)printf("%d\n",q[x-1]);else if(num == 5){it = lower_bound(q.begin(),q.end(),x);printf("%d\n",*(--it));}else if(num == 6){it = upper_bound(q.begin(), q.end(),x);printf("%d\n",*it);}}return 0;
}

继续加油。

牛客小白月赛8 vector的使用相关推荐

  1. 牛客小白月赛16 小石的签到题(博弈)

    牛客小白月赛16 小石的签到题 链接:https://ac.nowcoder.com/acm/contest/949/A来源:牛客网 题目描述 输入描述: 共一行,输入一个数 nnn . 输出描述: ...

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

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

  3. 牛客小白月赛58 B(暴力)C(思维)D(dp滚动数组优化)

    牛客小白月赛58 感觉没什么意思,这场月赛出题人有点问题. B 题意:给定一定的数据填充顺序和每一个填充层的名称,只有填充满了上一层才可以填充下一层. 但是每一层又属于某一个大层,一个大层中包含了若干 ...

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

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

  5. 牛客小白月赛25 C.白魔法师

    牛客小白月赛25 C.白魔法师 题目链接 题目描述 你是一个白魔法师. 现在你拿到了一棵树,树上有 个点,每个点被染成了黑色或白色. 你可以释放一次魔法,将某个点染成白色.(该点不一定是黑色点,也可以 ...

  6. 牛客小白月赛60(A~C)题解

    原题地址:牛客小白月赛60_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 题目A:小竹与妈妈 题意:输出(x-b)/a即可,没什么好说 代码: #include< ...

  7. 牛客小白月赛2 H.武

    牛客小白月赛2 H.武 题目链接 题目描述 其次,Sεlιнα(Selina) 要进行体力比武竞赛. 在 Sεlιнα 所在的城市,有 NNN 个街区,编号为 1∼N1 \sim N1∼N,总共有 N ...

  8. 牛客小白月赛28 J.树上行走

    牛客小白月赛28 J.树上行走 题目链接 题目描述 牛牛苦练武功绝学--轻功水上漂,最终没有练成,但是他学会了在树上行走的本领. 这天,牛牛落入了敌人的陷阱,身后有巨石追击,面前有n个点,n-1条边连 ...

  9. 牛客小白月赛6 C.桃花

    牛客小白月赛6 C.桃花 题目链接 题目描述 桃花一簇开无主,可爱深红映浅红.--<题百叶桃花> 桃花长在桃树上,树的每个节点有一个桃花,调皮的HtBest想摘尽可能多的桃花.HtBest ...

最新文章

  1. 查询时注意 查询字段传值参数类型,尽量和数据库字段类型一致
  2. 2Boost之UPD,Client and Server
  3. 统一管理MOSS2010用户头像
  4. 向量表示 运动抛物线_初学讲义之高中物理(四)常见运动类型
  5. Linux下文件开头的feff的问题
  6. PPP认证原理和实验
  7. iOS 点击tabbarItem的时候根据登录状态判断加载哪个视图控制器
  8. mysql服务器磁盘空间耗尽_一次服务器磁盘空间不足导致的一系列问题
  9. 如何用活字格定制监狱管理系统
  10. python矢量化运算_Python里面的矩阵与矢量化运算
  11. 世界观的内涵是认识论模型
  12. word模板中添加图片
  13. python中py是什么意思_python中__init__.py是干什么的
  14. 每周分享第 31 期
  15. mdx格式的词典用什么软件打开_分享 | 手机词典推荐—欧陆词典(涵盖牛津、朗文等14部权威英语辞典)...
  16. 温度传感器采集温度数据通过网关上传至ThingsBoard平台
  17. Chrome 创建快捷方式后在单页面打开网页内容
  18. php - 简繁转换
  19. (图)HOLD住!aiwi最新体感游戏强势来袭!!
  20. WIN11跳过开机启动OOBE界面进入系统方法

热门文章

  1. fedora15 安装nvidia 显卡驱动
  2. 打开word文档提示文件未找到_word文档打开,提示“向程序发送命令时出现问题”的原因...
  3. ubuntu 开机启动 ibus 输入法
  4. remote: HTTP Basic: Access denied的解决方法
  5. 腾讯,百度,高德地图兴趣点(POI)的获取以及查询,逆解析解析
  6. 中文括号和英文括号转换
  7. 关于Page Life Expectancy的一片文章
  8. 前端机器学习——线性回归
  9. 计算机技术离不开量子力学,高分子与计算机模拟
  10. python中readlines是什么意思_Python中read,readline,readlines三种方式的区别