//【算法分类】【搜索】【DFS】枚举所有子集#include <cstdio>
using namespace std;
const int MAXSIZE = 10005;
int a[MAXSIZE],n;
bool used[MAXSIZE];
void dfs(int dep)
{
if (dep>n)
{
for(int i=1; i<=n; i++)
if (used[i]) printf("%d ",a[i]);
printf("\n");
return;
}
used[dep]=false;
dfs(dep+1);
used[dep]=true;
dfs(dep+1);
}
int main()
{
scanf("%d",&n);
for(int i=1; i<=n; i++)
scanf("%d",&a[i]);
dfs(1);
return 0;
}
本文介绍了一种使用深度优先搜索(DFS)算法来枚举集合的所有子集的方法。通过递归的方式,该算法能够有效地生成给定集合的所有可能子集,并通过控制台输出展示这些子集。

520

被折叠的 条评论
为什么被折叠?



