#HX2472. 递归搜索入门题五:子集枚举二

提交3 通过1
通过率33.3%
时间限制1000ms
内存限制128MiB
    ID: 12782 传统题 1000ms 128MiB 尝试: 3 已通过: 1 难度: 普及- 上传者: 标签>C++c++编程题浩轩OJ迁移6级2025年寒假六级班题库

题目描述

题目描述

写一个递归函数,枚举 n 个数 x₁,…,xₙ 中取若干个数的每种方法(子集枚举)。对每种方法把取出的数从小到大排序,若两种方法中前 k-1 个数的选取情况相同,则取了第 k 个数的在前。例如对 n=4,X={100,20,3,4},应该按如下顺序给出结果:

{100,20,3,4},{100,20,3},{100,20,4},{100,20},{100,3,4},{100,3},{100,4},{100},{20,3,4},{20,3},{20,4},{20},{3,4},{3},{4},{}。

输入格式

第一行一个正整数 n。

第二行 n 个正整数 x₁,…,xₙ。

输出格式

输出 2^n 行,每行一个子集,按题目要求顺序。

输入样例 #1

4
100 20 3 4

输出样例 #1

100 20 3 4
100 20 3
100 20 4
100 20
100 3 4
100 3
100 4
100
20 3 4
20 3
20 4
20
3 4
3
4

输入样例 #2

1
2781254

输出样例 #2

2781254

输入样例 #3

2
2392811 6727834

输出样例 #3

2392811 6727834
2392811
6727834

数据范围与约定

1 ≤ n ≤ 12;1 ≤ xᵢ ≤ 10^7