递归实现指数型枚举
blablabla
样例
#include <iostream>
#include <cstring>
#include <algorithm>
#include<iomanip>
using namespace std;
const int N=20;
int n;
int st[N];//记录每个数的状态,0表示没考虑,1表示选,2表示不选
void dfs(int x)//x表示当前枚举到了哪个位置
{
if(x>n)
{
for(int i=1;i<=n;i++)
{
if(st[i]==1)
{
cout<<i<<" ";
}
}
cout<<endl;
return;
}
st[x]=1;//选
dfs(x+1);
st[x]=0;//恢复现场
st[x]=2;//不选
dfs(x+1);
st[x]=0;//恢复现场
}
int main()
{
cin>>n;
dfs(1);
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla