AcWing 92. 递归实现指数型枚举
原题链接
简单
作者:
zcyes
,
2025-04-03 15:55:36
· 河南
,
所有人可见
,
阅读 1
#include<cstdio>
#include<cstring>
#include<iostream>
#include<vector>
using namespace std;
const int sz =16;
int n;
int st[sz];
vector<vector<int>> ways;
void dfs(int x){
if(x==n+1){
vector<int> way;
for(int i=1;i<=n;++i){
if(st[i]==1){
way.push_back(i);
}
}
ways.push_back(way);
return;
}
st[x]=-1;
dfs(x+1);
st[x]=0;
st[x]=1;
dfs(x+1);
st[x]=0;
}
int main(){
cin>>n;
dfs(1);
for(int i=0;i<ways.size();++i){
for(int j=0;j<ways[i].size();++j){
printf("%d ",ways[i][j]);
}
puts("");
}
return 0;
}