vector的骚操作
程序员文章站
2022-03-01 23:17:57
...
链接: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
说明
大家自己手玩样例算了QWQ
备注:
对于全部数据n<=1e5,且3,4,5,6的操作数少于60000 输入数据可能很多,推荐使用快读
#include<set>
#include<map>
#include<list>
#include<queue>
#include<stack>
#include<math.h>
#include<vector>
#include<bitset>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#define eps (1e-8)
#define MAX 0x3f3f3f3f
#define u_max 1844674407370955161
#define l_max 9223372036854775807
#define i_max 2147483647
#define re register
#define pushup() tree[rt]=tree[rt<<1]+tree[rt<<1|1]
using namespace std;
inline int read(){
char c = getchar(); int x = 0, f = 1;
while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
while(c >= '0' & c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
typedef long long ll;
const double pi = atan(1.)*4.;
const int M=1e3+5;
const int N=1e5+5;
int main(){
int n,id,x;
scanf("%d",&n);
vector<int>vv;
for(int i=0;i<n;i++){
id=read(); x=read();
if(id==1){
vector<int>::iterator it=lower_bound(vv.begin(),vv.end(),x);
//vv.push_back(x);
vv.insert(it,x);
//sort(vv.begin(),vv.end());
}
else if(id==2){
vector<int>::iterator it=lower_bound(vv.begin(),vv.end(),x);
vv.erase(it);
}
else if(id==3){
printf("%d\n",lower_bound(vv.begin(),vv.end(),x)-vv.begin()+1);
}
else if(id==4){
printf("%d\n",vv[x-1]);
}
else if(id==5){
int h=lower_bound(vv.begin(),vv.end(),x)-vv.begin();
printf("%d\n",vv[h-1]);
}
else if(id==6){
int h=upper_bound(vv.begin(),vv.end(),x)-vv.begin();
printf("%d\n",vv[h]);
}
}
return 0;
}
下一篇: C++ set用法总结
推荐阅读
-
十个本年最炫的WebOS(网络操作系统)点评 WebOS网络应用应用服务器网页游戏浏览器
-
我觉得写的代码98%都是操作字符串的,关心的问题就是字符串从哪儿来,然后把它保存到哪儿去,然后怎么显示给用户
-
PHP中的按位与和按位或操作示例_PHP教程
-
sql脚本查询数据库表,数据,结构,约束等操作的方法
-
【很好,很和谐】蒙骗了CCTV 人民网 凤凰网 网易 新浪的 特大假新闻 学生网站系统 007OS 取代Windows操作系统 WindowsWebOS网页游戏编程游戏
-
excel横向变纵向排列(表格纵向变横向的操作方法)
-
Linux环境下搭建php开发环境的操作步骤
-
使用IDEA创建Web项目并发布到tomcat的操作方法
-
thinkPHP的数据库操作怎么用alias?
-
hibernate一对多&多对多关系的操作(四)