社区讨论

二分答案,玄关

学术版参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mhjo19rs
此快照首次捕获于
2025/11/04 05:42
4 个月前
此快照最后确认于
2025/11/04 05:42
4 个月前
查看原帖
说明 水王有一个由 n 个整数组成的多重集。他希望你处理以下两种操作: -将整数 k 加入集合; -删除集合中第 k 小的数。 如果当前操作需要删除一个在集合中多次出现的元素,则只删除其中的一个。在处理所有操作之后,如果它是空的,输出 "0" ;否则输出集合中最小的数字。
输入格式 第一行包含两个整数 n 和 q(1≤n,q≤10^6) ——初始集合中的元素数和操作数。 第二行包含 n 个整数 a_1, a_2,…, a_n(1≤a_1≤a_2≤……≤a_n≤n) 表示多重集中的元素。 第三行包含 q 个整数k_1, k_2,…, k_q,每个 k 表示一个操作: -如果 1≤k_i≤n ,则第 i 个操作为“在集合中加入 k_i” -如果 k_i< 0 ,则第 i 个操作是“从集合中删除第 |k_i| 小的数”。对于这个操作,可以保证 |k_i| 不大于集合当前的大小。
输出格式 如果所有操作后的集合为空,则打印" 0 "。否则,输出集合中最小的数字。
样例 样例输入1 5 5 1 2 3 4 5 -1 -1 -1 -1 -1 样例输入2 5 4 1 2 3 4 5 -5 -1 -3 -1 样例输入3 6 2 1 1 1 2 3 4 5 6 样例输出1 0 样例输出2 3 样例输出3 1 样例解释 第一个样例,每次修改后的集合为: 2 3 4 5 3 4 5 4 5 5 空 因为集合最后为空,所以输出0 第二个样例,每次修改后的集合为: 1 2 3 4 2 3 4 2 3 3 最后集合剩下了3,所以输出3 第三个样例,每次修改后的集合为: 1 1 1 2 3 4 5 1 1 1 2 3 4 5 6 最后集合内还剩8个数字,因为要输出最小的数字,所以输出1 数据范围
数据点编号 n<= q<=
1,2,3,4 500
5,6,7,8 5000
9,10,11,12 50000
13,14,15,16 200000
17,18,19,20 1000000

回复

2 条回复,欢迎继续交流。

正在加载回复...