当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

6678:度度熊与整数集合

题目描述
度熊在用一个由最小的 $N$ 个正整数组成的集合 (也就是 $\{1,2,\ldots, N\}$) 和一个下标为 $1 \sim N$ 的数组 $a$ 玩游戏。

游戏开始时数组 $a$ 的所有数字都是 $0$,接着共有 $N-1$ 次操作,每次操作由以下步骤组成:

1. 选取一个元素个数大于 $1$ 的集合 $S$。
2. 对于 $S$ 中所有元素 $i$,都把 $a[i]$ 的值加 $1$。
3. 选取一个正整数 $x$,这个 $x$ 必须满足 $S$ 中小于等于 $x$ 的数的数量以及大于 $x$ 的数的数量都不为 $0$。
4. 把集合 $S$ 分成两个集合,第一个包含 $S$ 中所有小于等于 $x$ 的元素,第二个包含 $S$ 中所有大于 $x$ 的元素,产生出两个集合后,集合 $S$ 就消失了。

$N-1$ 次操作结束后就会产生出 $N$ 个集合,这 $N$ 个集合恰是对于所有 $i = 1 \sim N$,大小为 $1$ 且仅包含数字 $i$ 的集合。

游戏结束后,度熊忘记了 $N-1$ 次操作的过程,只知道操作完后 $a[1] \sim a[N]$ 的值,请根据这些值来还原操作,仅需依序输出第 $i$ 次操作所选的 $x$ 值即可。若有多组解,请输出字典序最小的解。

提示:我们称数组 $c_1,c_2,\ldots,c_n$ 字典序比数组 $d_1,d_2,\ldots,d_n$ 小,当且仅当存在某个 $i$ 满足对于所有$j < i$ 都有 $c_j = d_j$,且 $c_i < d_i$。
输入解释
有多组询问,第一行包含一个正整数 $T$ 代表有几组询问,接着每组测试数据占 $2$ 行,第一行包含一个正整数 $N$,第二行包含 $N$ 个正整数 $a[1], a[2], \ldots, a[N]$。

* $1 \le T \le 20000$

* $2 \le N \le 10^5$

* $1 \le a[i] \le N-1$

* 所有询问的 $N$ 的总和不超过 $3 \times 10^6$
输出解释
对对于每一个询问。若有可能还原操作,则输出两行,第一行包含一个字符串 "Possible",第二行包含 $N-1$ 个正整数,依序是第 $i$ 次操作所选的 $x$ 值 (若有多组可能,请输出字典序最小的); 若不可能还原,仅需输出一行包含一个字符串 "Impossible" (不包含引号)。
输入样例
4
2
1 1
3
1 1 2
4
2 2 2 2
3
1 2 2
输出样例
Possible
1
Impossible
Possible
2 1 3
Possible
1 2

Note
对于第一组询问来说,当 $n=2$ 时,可能的游戏过程只有一种,也就是在唯一一次的操作中,令 $x=2$,即可把集合 $\{1,2\}$ 拆成两个集合 $\{1\}$ 和 $\{2\}$。游戏结束后数组 $a=[1,1]$ 刚好就是这组询问,所以答案为 $1$。

对于第二组询问来说,没有任何一种游戏方式可以让 $a$ 变成 [1,1,2],答案为 "Impossible"。

对于第三组询问来说,虽然存在 $2,1,3$ 和 $2,3,1$ 两种可能的游戏过程,但 $2,1,3$ 的字典序比较小,所以必须输出 $2,1,3$。
来自杭电HDUOJ的附加信息
Recommend liuyiding

该题目是Virtual Judge题目,来自 杭电HDUOJ

源链接: HDU-6678

最后修改于 2020-10-25T23:33:24+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
4000/2000MS(Java/Others) 32768/32768K(Java/Others)