首页 > 其他分享 >递归实现指数型枚举(例)

递归实现指数型枚举(例)

时间:2023-05-27 19:34:00浏览次数:42  
标签:递归 指数 int 枚举 用于 操作 include

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

#include <iostream>  //C++标准库中的头文件.用于控制台输入和输出。
#include <cstring>   //用于处理字符串的函数和操作
#include <algorithm> //提供了许多常用的算法函数,用于对数据进行排序、查找、变换和操作等操作。

using namespace std;

const int N = 20;

int n;
int st[N];

void dfs(int x)
{ // x表示当前枚举到了哪个位置
    if (x > n)
    {
        for (int i = 1; i <= n; i++)
        {
            if (st[i] == 1)
            {
                printf("%d ", i);
            }
        }
        printf("\n");
        return;
    }
    // 选
    st[x] = 1;
    dfs(x + 1);
    st[x] = 0; // 恢复现场
    // 不选
    st[x] = 2;
    dfs(x + 1);
    st[x] = 0; // 恢复现场
}
int main()
{
    scanf("%d", &n);
    dfs(1);
    return 0;
}

 一些注意:n<=10^5 cin和cout与scanf和printf速度差不多,但当超过这个范围,cin和cout会比scanf和printf慢一倍。

标签:递归,指数,int,枚举,用于,操作,include
From: https://www.cnblogs.com/gjkt2001/p/17437206.html

相关文章

  • 5_26打卡_二叉树的创建与遍历(递归)
    #include<iostream>usingnamespacestd;typedefstructtree{ chardata; tree*lchild; tree*rchild;}tree;//递归实现创建树voidcreatTree(tree*&root){ charch; cin>>ch; if(ch=='0') { root=NULL; } else{ root=......
  • CodeForces 1105B Zuhair and Strings(思维 + 枚举)
    传送门题目大意就是给你一个字符串,还有一个等级K,K的具体含义就是连续的相同的字符串的个数,题目就是要求长度为k的,字符一样的子串有几个,如果k==2就是比如aa,bb,cc,dd,..... 这样的,注意不能重叠。因为题目给的数据范围在2e5,所以枚举从a到z,然后取最大值就好了。代码如下#incl......
  • POJ 1753 Flip Game(枚举+递归)
    传送门思路是别人的,自己理解了半天,真是渣渣。对于自己,路还长,年轻人。对任意一个格子来说,翻动偶数次等于没翻,翻动奇数次等于翻一次,所以只需考虑翻一次的情况。一共16个格子,每个格子只有翻和不翻,所以最多16步,最少0步,题目要求最少的步数,所以0——>16枚举,看哪一步先成功就是最优解。使......
  • 算法学习记录(模拟枚举贪心题单):四舍五入(未AC)
    题目链接https://ac.nowcoder.com/acm/contest/20960/1004题目分析注意当第i位为9是,此时进位就是0,但是0<5,所以就不能再用i+1进行判断了。所以对于这种情况可以再添加一个其他变量。未AC代码//主要解决问题,因为使用i+1去判断是否要进位的//逢9进位后就会变成0,那么第i+1位......
  • C# 操作List集合报错:集合被修改,枚举操作可能不会执行(Collection was modified, enume
    问题Ihavemultithreadsapplicationandigetthiserror**************ExceptionText**************System.InvalidOperationException:Collectionwasmodified;enumerationoperationmaynotexecute.atSystem.ThrowHelper.ThrowInvalidOperationExcepti......
  • 结构体、共用体、枚举类型
    12.0本章内容导读之前已经来过一堆数据了,本周又来了一堆数据,这堆数据和之前来过的那堆数据有何不同呢?如果说前面来的都是清一色的陆战队的话,那么本周则是海陆空一起来了,它更强大了。本周,我们要介绍几种新的数据类型:结构体、共用体和枚举类型。结构体的应用主要体现在可以用于精......
  • 路径总和 leetcode——递归+回溯
    题目leetcode:113代码与解析这道题可以看做leetcode112和leetcode257合体这道题要遍历整棵树,把所有符合条件的路径添加进去,所以不需要返回值递归三部曲:确定参数和返回值要传入当前节点,和总和,不需要返回值确定终止条件如果当前节点没有叶子结点,并且和等于target.那么添加进r......
  • js 中数组转树 递归方法
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><metaname="viewport"content="w......
  • SpringBoot中使用枚举类、switch、常量类(声明并初始化map)实现类策略者模式,接口返回
    场景SpringBoot中策略模式+工厂模式业务实例(接口传参-枚举类查询策略映射关系-执行不同策略)规避大量if-else:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130503707SpringBoot+@Validate+全局异常拦截实现自定义规则参数校验(校验get请求参数不能为空且在指定......
  • Algorithm_01--C#递归算法
    ///递归算法本质:///1、方法的自我调用///2、有明确的终止条件///3、每次调用时,问题规模在不断减少。通过递减,最终到达终止条件  问题:程序在输入1000后(即1到1000的和),程序会出现异常。解答:百度后得出结论,栈溢出异常。1、递归......