AcWing 92. 递归实现指数型枚举
原题链接
简单
作者:
GanaWeng
,
2024-11-22 17:08:38
,
所有人可见
,
阅读 1
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 16;
int path[N];
bool st[N];
int n;
void dfs(int u, int k)
{
if(k == 0)
{
puts("");
return;
}
else if(u == k)
{
for(int i = 0; i < k; i ++)
cout << path[i] << ' ';
cout << endl;
return;
}
for(int i = 1; i <= n; i ++)
{
if(!st[i] && i > path[u - 1])
{
st[i] = true;
path[u] = i;
dfs(u + 1, k);
st[i] = false;
}
}
}
int main()
{
cin >> n;
for(int i = 0; i <= n; i ++)
dfs(0, i);
}