U576637 【模板】van Emde Boas 树 / BZOJ3685 普通 van Emde Boas 树
题目背景
原 BZOJ3685。
将题面排版进行了适当优化。
题目描述
维护一个整数集合,支持以下操作:
1. 插入:若元素 $x$ 不存在,将其插入集合。
2. 删除:若元素 $x$ 存在,将其从集合中删除。
3. 查询最小值:输出集合中的最小值,若集合为空则输出 $-1$。
4. 查询最大值:输出集合中的最大值,若集合为空则输出 $-1$。
5. 查询前驱:输出小于 $x$ 的最大元素,若不存在则输出 $-1$。
6. 查询后继:输出大于 $x$ 的最小元素,若不存在则输出 $-1$。
7. 存在性检查:若元素 $x$ 存在,输出 $1$,否则输出 $-1$。
输入格式
第一行包含两个整数 $n$ 和 $m$,分别表示元素的取值范围和操作次数。
接下来 $m$ 行,每行描述一个操作,格式为:
- `1 x`:插入 $x$。
- `2 x`:删除 $x$。
- `3`:查询最小值。
- `4`:查询最大值。
- `5 x`:查询前驱。
- `6 x`:查询后继。
- `7 x`:存在性检查。
输出格式
对于每个查询操作(操作 $3\sim 7$),输出对应的结果。
说明/提示
- $1\le n\le 10^6$。
- $1\le m\le 2\times 10^6$。
- $0\le x