#P15011. [2026省选联测]猫儿小
[2026省选联测]猫儿小
【题目描述】
我们定义 。设 是一个非负整数的多重集(即可以包含重复元素)。每次操作,你可以选择 的任意非空子集(也可以包含重复元素),将该子集中的所有元素从 中移除,并将该子集的 MEX 加入 。你可以进行任意次这样的操作。所有操作结束后, 中应只剩下恰好一个数。 表示通过任意操作序列后, 最终可能剩下的最大数。
给定一个长度为 的非负整数数组 。对于它的每个前缀,计算 ,其中 是对应的前缀(对于第 个前缀, 包含数组 的前 个元素)。
MEX 指的是一个数组中未出现的最小非负整数。
【输入格式】
第一行包含一个整数 ()——数组 的长度。
第二行包含 个整数 ()——数组 。
输出格式
输出 个数:对于数组 的每个前缀,输出对应 的 。
输入输出样例 1
| mex.in | mex.out |
|---|---|
| 8 179 57 2 0 2 3 2 3 |
179 2 3 3 3 4 4 5 |
输入输出样例 2
| mex.in | mex.out |
|---|---|
| 3 1 0 3 |
1 2 2 |
输入输出样例 3
| mex.in | mex.out |
|---|---|
| 8 1 0 1 2 4 3 0 2 |
1 2 2 3 3 5 5 5 |
输入输出样例 4~9
分别满足 1~6 子任务的限制。
说明/提示
样例 1 解释
对于长度为 的前缀,初始多重集为 。如果什么都不做,结果就是 。
对于长度为 的前缀,初始多重集为 。可以通过如下操作序列得到 :
- 对 进行操作,多重集变为 。
- 对 进行操作,多重集变为 。
- 对 进行操作,多重集变为 。
- 对 进行操作,多重集变为 。这就是答案。
数据规模与约定
对于所有测试数据,保证:
- ;
- ;
| Subtask 编号 | 特殊性质 | 分值 |
|---|---|---|
| 无特殊限制 |