[R19F]操作序列
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
时空限制
2S/512M
题目描述
给定一个操作序列和一个初始为空的集合 。操作序列包含以下两种类型:
操作 :向集合 中添加一个数 。
操作 :从集合 中删除所有值为 的数(如果 内没有 ,则什么都不做)。
现有 次查询。每次查询给出一个区间 ,要求计算依次执行操作序列中第 到第 个操作后,集合 的 (最小未出现非负整数)值。
apiadu
觉得这个问题太简单了。故对于每次查询 ,他可以在该区间内选择两个位置 (满足 )并交换这 两个位置的操作,你的目标是帮助 apiadu
选择 使最终集合 值最大。你只需要输出最大的 即可。(每次询问独立,即交换操作不影响后续的询问,同时 apiadu
也可以选择不交换。)
表示 中最小未出现的非负整数。例如 ,,。
格式
输入格式
本题有多组测试数据。
第一行含有一个正整数 ,表示数据组数。
对于每组数据,第一行含有 个正整数 ,表示操作序列的长度和询问次数。
接下来 行,每行含有 个整数 , 表示添加操作(添加数 )。 表示删除操作(删除所有值为 的数)。
接下来 行,每行输入两个整数 ,表示一次查询区间 。
输出格式
对于每次查询,输出一行一个整数,表示 apiadu
通过选择交换两个位置操作后能得到的最大 。
样例
样例输入 #1
2
3 2
1 0
2 0
1 1
1 3
2 3
2 1
1 1
1 0
1 2
样例输出 #1
2
0
2
样例解释 #1
对于第一组测试数据:
-
第一个询问 ,只需要将第 个操作与第 个操作交换,得到 ,。
-
第二个询问 ,无论怎样交换都会得到 ,。
数据规模
对于 的测试数据,。
对于 的测试数据,。
对于 的测试数据,$1 \leq n , Q \leq 5 \times 10^5, 1 \leq T \leq 100, \sum n \leq 5 \times 10^5,\sum Q \leq 5 \times 10^5, op_i \in \{1, 2\},0 \leq a_i \leq n , 1 \leq l \leq r \leq n$。
代码源挑战赛 Round 19
- Status
- Done
- Rule
- DMY
- Problem
- 6
- Start at
- 2025-7-4 20:00
- End at
- 2025-7-4 21:30
- Duration
- 1.5 hour(s)
- Host
- Partic.
- 524