3685: 普通van Emde Boas树

Time Limit: 9 Sec  Memory Limit: 128 MB
Submit: 1932  Solved: 626
[Submit][Status][Discuss]

Description

设计数据结构支持:
1 x  若x不存在,插入x
2 x  若x存在,删除x
3    输出当前最小值,若不存在输出-1
4    输出当前最大值,若不存在输出-1
5 x  输出x的前驱,若不存在输出-1
6 x  输出x的后继,若不存在输出-1
7 x  若x存在,输出1,否则输出-1

Input

第一行给出n,m 表示出现数的范围和操作个数
接下来m行给出操作
n<=10^6,m<=2*10^6,0<=x<n

Output

Sample Input

10 11
1 1
1 2
1 3
7 1
7 4
2 1
3
2 3
4
5 3
6 2

Sample Output

1
-1
2
2
2
-1

HINT

Source

By Zky

常规操作
要用zkw减小常数,但我貌似卡过了

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#define ls u<<1
#define rs ls|1
#define ll long long
#define N 1000050
using namespace std;
int n,m,sum[N<<2],vis[N];
void pushup(int u){sum[u]=sum[ls]+sum[rs];}
int findpos(int u,int l,int r,int x){if(!sum[u])return 0;if(l==r)return sum[u];int mid=l+r>>1;if(x<=mid)return findpos(ls,l,mid,x);return findpos(rs,mid+1,r,x)+sum[ls];
}
void update(int u,int L,int R,int p,int val){if(L==R){sum[u]=val;return;}int mid=L+R>>1;if(p<=mid)update(ls,L,mid,p,val);else update(rs,mid+1,R,p,val);pushup(u);
}
int query(int u,int l,int r,int p){if(l==r)return l;int mid=l+r>>1;if(p<=sum[ls])return query(ls,l,mid,p);return query(rs,mid+1,r,p-sum[ls]);
}
int main(){scanf("%d%d",&n,&m);int op,x;while(m--){scanf("%d",&op);if(op!=3&&op!=4)scanf("%d",&x);if(op==1)update(1,0,n-1,x,1),vis[x]=1;if(op==2)update(1,0,n-1,x,0),vis[x]=0;if(op==3){if(sum[1]==0)puts("-1");else printf("%d\n",query(1,0,n-1,1));}if(op==4){if(sum[1]==0)puts("-1");else printf("%d\n",query(1,0,n-1,sum[1]));}if(op==5){int p=findpos(1,0,n-1,x);if(vis[x])p--;if(p<=0)puts("-1");else printf("%d\n",query(1,0,n-1,p));}if(op==6){int p=findpos(1,0,n-1,x);p++;if(p>sum[1])puts("-1");else printf("%d\n",query(1,0,n-1,p));}if(op==7){if(vis[x])puts("1");else puts("-1");}}return 0;
}

转载于:https://www.cnblogs.com/wsy01/p/8064967.html

bzoj3685普通van Emde Boas树 线段树相关推荐

  1. BZOJ3685普通van Emde Boas树

    3685: 普通van Emde Boas树 Time Limit: 9 Sec Memory Limit: 128 MB Submit: 962 Solved: 319 Description 设计 ...

  2. van Emde Boas Trees(vEB树)(Introduction to Algorithms, 算法导论,CLRS)学习笔记

    van Emde Boas Trees 1. Predecessor search/ordered sets predecessor: return the nearest left neighbor ...

  3. BZOJ3685 普通 van Emde Boas 树 题解(vEB 树模板题)

    (题目描述略) vEB 树的模板题,似乎用 zkw 线段树也可以过. 因为 vEB 树的建树过程花费大量时间,所以若用 STL 中的 vector 开不定长数组,其常数之大难免有超时的危险.解决方法是 ...

  4. 【bzoj3685】普通van Emde Boas树 线段树

    普通van Emde Boas树 Time Limit: 9 Sec  Memory Limit: 128 MB Submit: 1969  Solved: 639 [Submit][Status][ ...

  5. BZOJ 3685: 普通van Emde Boas树( 线段树 )

    建颗权值线段树就行了...连离散化都不用... 没加读入优化就TLE, 加了就A掉了...而且还快了接近1/4.... ---------------------------------------- ...

  6. bzoj 3685 普通van Emde Boas树(坑)

    3685: 普通van Emde Boas树 Time Limit: 9 Sec Memory Limit: 128 MB Submit: 1758 Solved: 563 [Submit][Stat ...

  7. 算法导论读书笔记(20)van Emde Boas树

    第五部分 高级数据结构 第20章 van Emde Boas树 van Emde Boas树支持优先队列操作以及一些其他操作,每个操作最坏情况运行时间为O(lglgn).而这种数据结构限制关键字必须为 ...

  8. van Emde Boas 树 数据结构说解

    van Emde Boas 树的定义 直观上看,vEB 树保存了一个有序的集合,并支持以 O(lglgn) 的时间复杂度在 vEB 树上进行最小最大值查询.单值存在性查询.单值前驱后继查询.单值插入维 ...

  9. 算法导论-van Emde Boas树

    van Emde Boas树 van Emde Boas树中文名不知道,所以暂且叫它v树吧.v树是一种数据结构,和二叉树.红黑树类似.一种数据结构被创建出来,肯定有其特别的优点,v树的优点就是实现数据 ...

最新文章

  1. 数字双胞胎技术和物联网如何帮助企业取得成功
  2. HTTPPost/AFNetWorking/JSONModel/NSPredicate
  3. MySQL查询获取行号rownum
  4. 多索引表 (4)multi_index.hpp源代码
  5. 面试官:Thread.sleep(0) 有什么用?
  6. 家用、商用、工业交换机的用途与区别
  7. linux静默删除文件夹,Linux常用命令10 - unzip
  8. BugkuCTF-MISC题FileStoragedat
  9. DHCP服务器的的操作心得
  10. Android提升篇系列:Activity recreate(Activity 重新创建/自我恢复)机制(一)
  11. SQL 2016 AlwaysOn 无域AlwaysOn配置要点
  12. fpga一个按键控制跑马灯启停_车上这些开关都认识吗?一次带你认清车上按键...
  13. Python-移位密码、仿射变换解密
  14. scrapy 官方文档(入门必备)
  15. 信号强度和dBm的对应关系
  16. centos7.X版本如何下载网络流量实时监控工具iftop
  17. codeforces 727E. Games on a CD
  18. PostgreSQL安装详细步骤(linux)
  19. 细思极恐!家中电视机正在监视所有联网设备
  20. iOS 11封杀32位应用,不少开发者宁愿放弃

热门文章

  1. 互联网公司招聘--爱奇艺--互娱产品运营--2016年笔试题
  2. Django计算机毕业设计酒店入住管理系统(程序+lw)Python
  3. 磁云数字:供应链金融-支付系统演进过程
  4. 数据结构课后答案 c语言版
  5. 【持续更新】威胁情报 | 情报分析(主要是APT)信息源
  6. 计算机数据链路层协议之HDLC和PPP协议
  7. F1V3.0-图形-地图模块主要对象说明
  8. 树莓派编写html,在树莓派3b or 3a or 4a or 4b上搭建OpenWebRX
  9. wps上下括号怎么打出来_【wps大括号怎么打出来】wps大括号怎么打两行字_wps大括号怎么打...
  10. powerbi 无法将修改保存到服务器,解决Power BI错误基本版本不能为负数