HM225 集合剪枝
HM225 集合剪枝
来源: 第 225 集 set容器-插入和删除
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
集合没有头插、尾插、头删、尾删,也不能指定插入位置。插入只用 insert,插入时会自动排序。删除一律用 erase,另有专门的清空接口 clear。
erase 有三种常用重载:
erase(it):删掉迭代器指向的那一个元素。begin()指向的是**排序后的第一个**(最小元),不是最先插入的那个。erase(x):按值删除,容器里等于 \(x\) 的元素会被去掉(没有则什么也不做)。erase(beg, end):删掉半开区间。若传入begin()与end(),效果等同于清空。
clear() 也会把集合清空。清空后遍历只会打出换行。
按下列顺序操作一个 set<int>,每一步结束后都打印当前集合:
- 把第一段序列依次
insert进去; - 若集合非空,执行
erase(begin()); - 按值
erase(x); - 用
erase(begin(), end())清空; - 把第二段序列依次
insert进去; - 调用
clear()再清空一次。
打印使用迭代器,元素之间一个空格。
输入格式
第一行一个整数 \(n\)。
第二行 \(n\) 个整数,按给定顺序插入。当 \(n=0\) 时本行可以是空行。
第三行一个整数 \(x\),表示按值删除的目标。
第四行一个整数 \(m\)。
第五行 \(m\) 个整数,将在区间清空之后插入。当 \(m=0\) 时本行可以是空行。
输出格式
共六行,对应上述六步之后的集合。空集合对应的那一行只输出换行。
样例
输入 #1
4
30 20 40 10
30
0
输出 #1
10 20 30 40
20 30 40
20 40
输入 #2
5
10 20 30 40 50
20
3
7 8 7
输出 #2
10 20 30 40 50
20 30 40 50
30 40 50
7 8
说明
\(0 \le n,m \le 1000\),元素与 \(x\) 的绝对值不超过 \(10^9\)。
样例 #1 虽先插入 \(30\),begin() 仍指向排序后的 \(10\)。再按值删掉 \(30\),只剩 \(20\,40\)。随后两种清空都会得到空行。样例 #2 第二段插入 \(7,8,7\),集合去重后为 \(7\,8\),clear 后再变空。
信息
- ID
- 1224
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者