【子集树】输出一个序列的子序列
给一个序列 1 2 3
输出序列的子集
1
2
3
12
13
23
123
如何实现?
由上可以看出 类似于全排列
如何用全排列 实现子集输出?
也就是子集树?
#include<iostream>
using namespace std;
const int N = 1e5+10;
int n;
bool st[N];
int num[N];
void dfs(int u)
{
if(u>n)
{
for(int i = 1; i <= n; i++)
{
if(st[i]==true)
{
cout << i << ' ';
}
}
cout << endl;
return;
}
st[u]=true;
dfs(u+1);
st[u] = false;
dfs(u+1);
st[u] = true;
}
int main()
{
cin >> n;
dfs(1);
return 0;
}