AcWing 92. 递归实现指数型枚举
原题链接
简单
作者:
muchun
,
2024-04-03 21:50:54
,
所有人可见
,
阅读 2
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N=100010;
int n,ans[N],pos,start,state[N];
void dfs(int pos,int start,int num)
{
if (pos==num+1)
{
for (int i=1;i<=pos;++i)
{
if (state[i]==1)
printf("%d ",ans[i]);
}
puts("");
return ;
}
for(int i=start;i<=n;++i)
{
state[pos]=1;
ans[pos]=i;
dfs(pos+1,i+1,num);
state[pos]=0;
}
}
int main()
{
scanf("%d",&n);
for(int i = 1;i<=n;++i)
{
dfs(1,1,i);
}
puts("");
return 0;
}