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

92. 递归实现指数型枚举 - AcWing题库

每个数有选和不选两种情况

我们把每个数看成每层,可以画出一个递归搜索树

叶子节点就是我们的答案

很容易写出每dfs函数

dfs传入一个u表示层数

当层数大于我们n时,去判断每个数字的选择情况,输出被选的数字

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

const int N = 20;

int n;
bool vis[N];

void dfs(int u) 
{
    if (u > n) 
    {
        for (int i = 1;i <= n;i++)
        {
            if (vis[i])
            {
                cout << i << ' ';
            }
        }
        cout << '\n';
    }else {
        vis[u] = true;
        dfs(u+1);
        
        vis[u] = false;
        dfs(u+1);
    }
}

int main() 
{
    cin >> n;
    
    dfs(1);
    
    return 0;
}
相关推荐
旖-旎1 天前
深搜(二叉树的所有路径)(6)
c++·算法·leetcode·深度优先·递归
khalil10203 天前
代码随想录算法训练营Day-31贪心算法 | 56. 合并区间、738. 单调递增的数字、968. 监控二叉树
数据结构·c++·算法·leetcode·贪心算法·二叉树·递归
旖-旎4 天前
深搜(二叉树剪枝)(3)
数据结构·c++·算法·力扣·剪枝·递归
旖-旎6 天前
递归(快速幂)(5)
c++·算法·力扣·递归
旖-旎8 天前
递归(汉诺塔问题)(1)
c++·学习·算法·leetcode·深度优先·递归
♛识尔如昼♛13 天前
C 基础(8) - 函数
c语言·指针·递归·函数
进击的荆棘15 天前
递归、搜索与回溯——递归
算法·leetcode·递归
王老师青少年编程19 天前
csp信奥赛c++中的递归和递推研究
c++·算法·递归·递推·csp·信奥赛
老鼠只爱大米1 个月前
LeetCode经典算法面试题 #70:爬楼梯(朴素递归、记忆化递归、动态规划等六种实现方案详解)
算法·leetcode·动态规划·递归·斐波那契·矩阵快速幂·爬楼梯
独断万古他化1 个月前
【算法通关】二叉树中的深搜:DFS 递归解题套路
算法·二叉树·深度优先·dfs·递归