首页 > 其他分享 >92. 递归实现指数型枚举

92. 递归实现指数型枚举

时间:2024-05-17 21:42:37浏览次数:22  
标签:输出 92 递归 int dfs 枚举 include

传送锚点:https://www.acwing.com/problem/content/94/

从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。

输入格式

输入一个整数 n。

输出格式

每行输出一种方案。

同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。

对于没有选任何数的方案,输出空行。

本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。

数据范围

1≤n≤15

输入样例:

3

输出样例:


3
2
2 3
1
1 3
1 2
1 2 3

思路

通过递归,引入state表示该数选择状态

code

#include<iostream>
#include<vector>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn = 30;
int n;//代表几位数 
int state[maxn];//0表示还未考虑,1表示表示选这个数字,2表示不选这个数字
void dfs(int x) {//表示枚举到第几个位置 
	if (x > n) {
		for (int i = 1; i <= n; i++) {
			if (state[i] == 1) {
				cout << i << " ";
			}
		}
		cout << endl;
		return;
	}
	//选这个数字
	state[x] = 1;
	dfs(x + 1);
	state[x] = 0;

	//不选这个数字
	state[x] = 2;
	dfs(x + 1);
	state[x] = 0;
}
int main()
{
	cin >> n;
	dfs(1);
	return 0;
}

标签:输出,92,递归,int,dfs,枚举,include
From: https://www.cnblogs.com/6Luffy6/p/18198748

相关文章

  • Java枚举类
    一、使用场景:什么情况下使用枚举类?有的时候一个类的对象的个数是固定的,这种情况下我们就应该用枚举类来表示这个类。比如表示星期,就可以将Week定义为一个枚举类,同时为Week枚举类创建七个对象。再比如表示季节,就可以将Season定义为一个枚举类,同时为Season枚举类创建四个对象。......
  • LeetCode 1992. Find All Groups of Farmland
    原题链接在这里:https://leetcode.com/problems/find-all-groups-of-farmland/description/题目:Youaregivena 0-indexed mxn binarymatrix land wherea 0 representsahectareofforestedlandanda 1 representsahectareoffarmland.Tokeepthelandor......
  • python: 递归函数:阶乘
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python: 递归函数:汉诺塔
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python: 递归函数:猴子吃桃
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python: 递归函数:斐波那契数列
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • TypeScript 枚举类型(enum),声明常量
    enumErrorShowType{ SILENT=0, WARN_MESSAGE=1, ERROR_MESSAGE=2, NOTIFICATION=3, REDIRECT=9,} 这是一个枚举类型(enum)的定义,名为ErrorShowType。枚举类型是一种数据类型,它允许你定义一组命名的常量值。在这个例子中,ErrorShowType枚举类型包含......
  • java基础 韩顺平老师的 枚举和注解 自己记的部分笔记
    424,枚举类引出 packagecom.hspedu.enum_;publicclassEnumeration{publicstaticvoidmain(String[]args){//使用Seasonspring=newSeason("春天","温暖");Seasonsummer=newSeason("夏天","炎热&quo......
  • 分享一个树级结构数据,自动生成各个层次节点的code代码方法,优势在于可以在获取到子级的
    publicclassOrgCodeHierarchy{privatestaticfinalintMAX_SEQUENCE=999;privatestaticfinalStringALPHABET="ABCDEFGHIJKLMNOPQRSTUVWXYZ";privatestaticMap<String,Boolean>existingOrgCodeMaps=newHashMap<>()......
  • 【WCH蓝牙系列芯片】-基于CH582开发板—主机枚举从机所有服务和特征
    -------------------------------------------------------------------------------------------------------------------------------------在使用沁恒的CH582蓝牙芯片的过程中,有时需要主机去连接蓝牙从机进行通信,主机在使用过程中工作流程是: 1、 蓝牙初始化完成后,开始扫描......