题目 30045

前驱问题

查看题解 ↗GitHub ↗如何评测
题号
30045
时间限制
10000 ms
内存限制
1024 MB
标签
数据结构
来源
Library Checker (yosupo06) - predecessor_problem

【题目描述】

设 SS 是一个由 00 到 N−1N-1 之间的整数组成的集合。请处理以下 QQ 个查询:

  • 0 kk:若 k∉Sk\notin S,将 kk 插入 SS;若 k∈Sk\in S,不做任何操作。
  • 1 kk:若 k∈Sk\in S,将 kk 从 SS 中删除;若 k∉Sk\notin S,不做任何操作。
  • 2 kk:若 SS 包含 kk,输出 11;否则输出 00。
  • 3 kk:输出大于等于 kk 的最小元素(若不存在这样的元素,输出 −1-1)。
  • 4 kk:输出小于等于 kk 的最大元素(若不存在这样的元素,输出 −1-1)。

【输入】

SS 的初始状态由一个长度为 NN、仅由 0 和 1 组成的字符串 TT 给出。当且仅当 Ti=1T_i = 1 时,SS 包含 ii。

文本
$N\ Q$
$T$
$c_0\ k_0$
$c_1\ k_1$
$\vdots$
$c_{Q-1}\ k_{Q-1}$

【输出】

按上述规则,对每个类型为 2、3、4 的查询各输出一行其答案。

【输入样例】

文本
6 9
010101
3 3
4 3
4 0
0 4
1 3
2 4
2 3
3 3
4 3

【输出样例】

文本
3
3
-1
1
0
4
1

【数据范围】

  • 1≤N≤100000001 \leq N \leq 10000000
  • 1≤Q≤10000001 \leq Q \leq 1000000
  • 0≤ki<N0 \leq k_i \lt N

【来源】

Library Checker(yosupo06) predecessor_problem

数据下载

题目 30045 的公开数据

正在读取文件列表…

常用命令

题目 30045 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。