#include<iostream>
using namespace std
int n;
void dfs(int u,int state)
{
if(u==n)
{
for(int i=0;i<n;i++)
if(state>>i&1)
cout<<i+1<<" ";
cout<<endl;
return;
}
dfs(u+1,state);//不选当前数字
dfs(u+1,state | 1<<u);//选当前数字
}
int main()
{
cin>>n;
dfs(0,0);
return 0;
}
ACwing 92.(c++dfs枚举元素为n的所有组合)
最新推荐文章于 2025-03-22 00:00:00 发布
本文通过一个递归回溯算法的C++实现示例,详细介绍了如何使用递归和位运算来枚举所有可能的子集组合,并打印出这些组合。此代码适用于理解递归回溯的基本原理及其实现细节。
1403

被折叠的 条评论
为什么被折叠?



