牛客小白月赛8 vector的使用
链接: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的使用相关推荐
- 牛客小白月赛16 小石的签到题(博弈)
牛客小白月赛16 小石的签到题 链接:https://ac.nowcoder.com/acm/contest/949/A来源:牛客网 题目描述 输入描述: 共一行,输入一个数 nnn . 输出描述: ...
- F.孤独(牛客小白月赛39)
F.孤独(牛客小白月赛39) 题意: 给定一棵树,寻找一个路径,将断掉所有与这个路径上的点相连的边,使得剩下的最大连通块的大小最小 题解: 这题有点印象,感觉做过,至少这个方法肯定遇到过 设dp[u] ...
- 牛客小白月赛58 B(暴力)C(思维)D(dp滚动数组优化)
牛客小白月赛58 感觉没什么意思,这场月赛出题人有点问题. B 题意:给定一定的数据填充顺序和每一个填充层的名称,只有填充满了上一层才可以填充下一层. 但是每一层又属于某一个大层,一个大层中包含了若干 ...
- 牛客小白月赛65个人题解A-E
1. 牛客小白月赛65 A. 牛牛去购物 题意:给定n元,购买价格为a元的篮球和价格为b的篮球,数量不定,要使得花掉的钱最多,也就是剩余的钱数最少,求这个值 (1 <= n, a, b < ...
- 牛客小白月赛25 C.白魔法师
牛客小白月赛25 C.白魔法师 题目链接 题目描述 你是一个白魔法师. 现在你拿到了一棵树,树上有 个点,每个点被染成了黑色或白色. 你可以释放一次魔法,将某个点染成白色.(该点不一定是黑色点,也可以 ...
- 牛客小白月赛60(A~C)题解
原题地址:牛客小白月赛60_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 题目A:小竹与妈妈 题意:输出(x-b)/a即可,没什么好说 代码: #include< ...
- 牛客小白月赛2 H.武
牛客小白月赛2 H.武 题目链接 题目描述 其次,Sεlιнα(Selina) 要进行体力比武竞赛. 在 Sεlιнα 所在的城市,有 NNN 个街区,编号为 1∼N1 \sim N1∼N,总共有 N ...
- 牛客小白月赛28 J.树上行走
牛客小白月赛28 J.树上行走 题目链接 题目描述 牛牛苦练武功绝学--轻功水上漂,最终没有练成,但是他学会了在树上行走的本领. 这天,牛牛落入了敌人的陷阱,身后有巨石追击,面前有n个点,n-1条边连 ...
- 牛客小白月赛6 C.桃花
牛客小白月赛6 C.桃花 题目链接 题目描述 桃花一簇开无主,可爱深红映浅红.--<题百叶桃花> 桃花长在桃树上,树的每个节点有一个桃花,调皮的HtBest想摘尽可能多的桃花.HtBest ...
最新文章
- 查询时注意 查询字段传值参数类型,尽量和数据库字段类型一致
- 2Boost之UPD,Client and Server
- 统一管理MOSS2010用户头像
- 向量表示 运动抛物线_初学讲义之高中物理(四)常见运动类型
- Linux下文件开头的feff的问题
- PPP认证原理和实验
- iOS 点击tabbarItem的时候根据登录状态判断加载哪个视图控制器
- mysql服务器磁盘空间耗尽_一次服务器磁盘空间不足导致的一系列问题
- 如何用活字格定制监狱管理系统
- python矢量化运算_Python里面的矩阵与矢量化运算
- 世界观的内涵是认识论模型
- word模板中添加图片
- python中py是什么意思_python中__init__.py是干什么的
- 每周分享第 31 期
- mdx格式的词典用什么软件打开_分享 | 手机词典推荐—欧陆词典(涵盖牛津、朗文等14部权威英语辞典)...
- 温度传感器采集温度数据通过网关上传至ThingsBoard平台
- Chrome 创建快捷方式后在单页面打开网页内容
- php - 简繁转换
- (图)HOLD住!aiwi最新体感游戏强势来袭!!
- WIN11跳过开机启动OOBE界面进入系统方法
热门文章
- fedora15 安装nvidia 显卡驱动
- 打开word文档提示文件未找到_word文档打开,提示“向程序发送命令时出现问题”的原因...
- ubuntu 开机启动 ibus 输入法
- remote: HTTP Basic: Access denied的解决方法
- 腾讯,百度,高德地图兴趣点(POI)的获取以及查询,逆解析解析
- 中文括号和英文括号转换
- 关于Page Life Expectancy的一片文章
- 前端机器学习——线性回归
- 计算机技术离不开量子力学,高分子与计算机模拟
- python中readlines是什么意思_Python中read,readline,readlines三种方式的区别