牛客小白月赛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 ...
最新文章
- Mybatis报错 元素内容必须由格式正确的字符数据或标记组成
- android 支付宝月账单 统计图_2019年你抢了多少微信红包?花了多少?(微信账单查看教程)...
- psid mysql_MySQL数据双向同步解决方案(推荐)
- align_center在JAVA_margin:0 auto与body{text-align:center;}实现元素居中的区别
- ic designer
- 我在腾讯做运维--快速玩转蓝鲸社区版6.0【直播公开课】
- 安装python3.7.0的步骤_CentOS7下简单安装python3.7.0步骤
- 【APIO2016】Fireworks【闵可夫斯基和】【凸包向量和】【可并堆】
- 建立管理SQL Server登录帐户
- 对于使用progisp软件进行ISP编程时进入不了编程模式的解决方法
- 首发!《长安十二时辰背后的技术秘籍》正式公开,速来下载
- pytorch: 在训练中保存模型,加载模型
- 采用JAVASCRIPT实现全选的三种情况
- 清新淡雅水彩手绘花卉插画素材,psd分层好用!
- Eclipse之Android开发环境搭建
- paip.dom4j中 selectSingleNode 或selectNodes获取不到节点的原因总结
- zabbix配置方糖微信推送报警
- 经典:智能物联网大数据系统案例
- linux系统Nginx下limit_req模块burst参数超详细解析
- 闲聊机器人实例二:python实现小姜机器人(检索式chatbot_fuzzywuzzy)
热门文章
- html5怎么调用cur指针,鼠标指针.cur.ani导出与制作
- Samsara v2.0 高级技巧
- 2.3Linux常用命令
- Ubuntu18.04 WPS安装后,提示“系统缺失字体symbol、wingdings、wingdings 2、wingdings 3、webding”的解决方法
- 利用AI+大数据的方式分析恶意样本(四十)
- 【RocketMQ】消息重试、重试次数设置、死信队列
- GitHub提交出错处理【2022年】
- 关于morden c++ design中的kdl问题(singleton)的解决
- 微信小程序实现直播间点赞飘心效果的示例代码
- 【C】39.程序中的三国天下