问题:从1-n这n个整数中随机选取任意多个,输出所有可能选举方案
输入格式:输入一个整数n
输出方案:每行输出一种方案
同一行中的数必须升序排列,相邻两个数之间用空格隔开
对于没有任何数的方案,输出空行
数据范围:1<=n<=15
输入样例:3
输出样例:
3
2
2 3
1
1 2
1 3
1 2 3

#include<iostream>
using namespace std;
const int N=15;
int n;     //表示要输入的数字
int st[N];   //记录当前状态,0表示不考虑,1表示 选它,2表示不选它
int ways[1<<15][16],nub;   //用二维数组记录所有方案;nub表示当前方案数量的多少
void f(int k)   //k:指当前传到第几位了
{if(k>n)     //判断边界,到达最后一位时,到达边界 {/* for(int i=1;i<n;i++)  //记录所有方案if(st[i]==1)ways[nub][i]=i;nub++;*/for(int i=1;i<=n;i++)if(st[i]==1) //当前位置为1的时候表示选它, printf("%d",i); //输出结果 printf("\n");return;}  //分支节点
st[k]=2;     //第一个分支 ,不选
f(k+1);  //递归到下一个位置
st[k]=0;       //回溯,恢复到原来的状态 st[k]=1;
f(k+1);    //第二个分支,选
st[k]=0;      //回溯,恢复到原来的状态 }
int main()
{cin>>n;f(0);    //传入当前枚举到第几类了 return 0;/*f(1);for(int i=0;i<nub;i++){for(intj=1;j<n;j++)printf("%d",ways[i][j]);printf("%d");}*/return 0;
}

递归法:实现指数型枚举(二叉树递归)相关推荐

  1. c语言用递归法判断回文字符串,递归方式判断一个字符串是否为回文字符串

    /* * 递归方式判断一个字符串是否为回文字符串 */ public class PartitionTest{ public static void main(String[] args) { Str ...

  2. MATLAB用递归法求解集合子集,用递归法求一个集合的子集c语言,急!!!

    匿名用户 1级 2014-04-09 回答 给你个参考代码: #include <stdio.h> #define ARRAY_SIZE 5 //输出Buffer集合 void Outpu ...

  3. 用递归法求最大公约数(递归)

    题目描述: 输入两个自然数a.b(a,b均在int范围内),用递归算法求a与b的最大公约数. 输入格式: 一行a与b,两数以一个空格隔开. 输出格式: 一个最大公约数. 样例输入: 20 15 样例输 ...

  4. 二叉树前序遍历(递归法和迭代法(即非递归法))——C++

    声明:本文原题主要来自力扣力扣,记录此博客主要是为自己学习总结,不做任何商业等活动 本文主要讲解二叉树的前序遍历递归法和迭代法.中序遍历和后序遍历可以参考博主下面两篇博客:二叉树中序遍历(递归法和迭代 ...

  5. 换零钱程序c语言,《SICP》换零钱的递归法与迭代法

    咳咳..先说一段废话.. 最近开始看SICP这本书,正看到了换零钱的部分.看到里面那么多简明生动的例子,还有作者的细心讲解,真是唤起了对学习的无限激情.之前也看过王垠的一些文章,提到了诸如Lisp.s ...

  6. 二叉树-对称二叉树(递归法)

    题意: 给定一个二叉树,检查它是否是镜像对称的. 中间划开,看是否对称 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / 2 2 / \ / 3 4 4 3 思路:(递归法) 这里镜像 ...

  7. 递归实现【指数型 / 组合型 / 排列型】枚举

    92. 递归实现指数型枚举 #include<bits/stdc++.h> using namespace std; const int N=20; int a[N],n; void df ...

  8. 《剑指offer》非递归法判定二叉树是否是对称的

    题目:请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 解析:该非递归法有点傻傻的,思想是利用队列进行层次遍历.然后翻转该二叉树,再层次遍 ...

  9. 《剑指offer》求二叉树的最小深度(非递归法)

    题目:求二叉树的最小深度(实际上该题来自leetcode) 解析:递归法简单些,下面演示下非递归.无外乎层次遍历二叉树了,思想是用current记录当前层的节点数,next记录下一层的节点数,用队列保 ...

  10. 19071 递归实现指数型枚举

    Description 递归实现指数型枚举是一种常用的DFS算法,复杂度是2^n,只能在n比较小的时候使用. 一般用于:从 1∼n 这 n 个整数中随机选取(或者有某些规则限制)任意多个,输出所有可能 ...

最新文章

  1. SQL 的Over 子句
  2. hdu-2204(容斥原理)
  3. 广东轻工计算机多媒体,广东轻工职业技术学院2015年自主招生计算机多媒体技术专业考核大纲...
  4. CVPR 2019 | 旷视提出新型目标检测损失函数:定位更精准
  5. Python文件练习
  6. DPVS_吊打面试官的项目——DPVS
  7. 安装oracle失败,停止在76%
  8. 100个iOS开发/设计面试题汇总,你将如何作答?
  9. 语音情感识别--RNN
  10. lvs负载均衡的调度算法和工作模式
  11. windows 查看_解决 Windows 照片查看器无法显示图片问题
  12. Oracle for Windows Embedded CE
  13. Redis内存分配简单分析
  14. Python字典学习
  15. arcgis 批量计算几何_GIS中的计算几何
  16. discuz论坛模板文件目录
  17. windows7经典开机音乐_那些经典的单机游戏背景音乐,带你找寻童年记忆
  18. 我只想保持本色,和少年的心气。
  19. 人人商场二次开发-克隆我的小店页面导航 首页 清除
  20. 联想电脑insert被默认修改成smart key时使用insert健

热门文章

  1. python编程入门视频-Python编程入门电子书及视频教程-非常详细『强烈推荐』
  2. python中文版软件下载-专业PYTHON开发工具——PyCharm中文汉化版下载(图文)
  3. python课程价格-少儿编程培训机构哪家好,儿童编程价格多少钱?家长知多少
  4. python 干什么工作具有明显优势-Python到底能做什么?它的优点在哪
  5. 学python后到底能干什么-学Python后到底能干什么
  6. python有趣的代码-介绍wtfPython—Python中一组有趣微妙的代码【收藏】
  7. python菜鸟教程100例-Python 练习实例1
  8. 如何在Unity项目中添加语音识别?
  9. 创业冲突的五种解决方法是_当创始合伙人发生冲突时,最好的解决方法4和5
  10. java 可变 不可变_java中的不可变类型的探究