递归实现指数型枚举

题目描述:

代码:

#include<bits/stdc++.h>
using namespace std;
int n;
int a[105];
void dfs(int u){
	if(u>n){
		for(int i=1;i<=n;i++)if(a[i]==1)cout<<i<<" ";
		cout<<endl;
		return;
	}
	
	a[u]=1;//1表示选择当前数 
	dfs(u+1);
	a[u]=0;//恢复现场 
	
	a[u]=2;//2表示不选择当前数 
	dfs(u+1);
	a[u]=0;//恢复现场 
	
}
int main(){
	cin>>n;
	dfs(1);
	return 0;
}

原题链接:92. 递归实现指数型枚举 - AcWing题库

posted @ 2022-03-14 10:06  回忆、少年  阅读(15)  评论(0)    收藏  举报  来源