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

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;
}
相关推荐
2401_841495641 天前
【LeetCode刷题】翻转二叉树
python·算法·leetcode··递归·节点·翻转二叉树
闻缺陷则喜何志丹3 天前
【栈 递归】P8650 [蓝桥杯 2017 省 A] 正则问题|普及+
c++·数学·蓝桥杯·递归·
少许极端4 天前
算法奇妙屋(二十七)-全排列与子集问题
算法·剪枝·回溯·递归
老鼠只爱大米4 天前
LeetCode经典算法面试题 #98:验证二叉搜索树(递归法、迭代法等五种实现方案详解)
算法·leetcode·二叉树·递归·二叉搜索树·迭代
2401_841495646 天前
【LeetCode刷题】二叉树的中序遍历
数据结构·python·算法·leetcode··递归·遍历
卷卷的小趴菜学编程8 天前
算法篇----递归回溯
c++·算法·递归·回溯算法·暴力搜索·floodfill算法·二叉树深搜
程序员-King.11 天前
day167—递归—二叉树的直径(LeetCode-543)
算法·leetcode·深度优先·递归
程序员-King.11 天前
day168—递归—二叉树的最大路径和(LeetCode-124)
算法·leetcode·深度优先·递归
老鼠只爱大米12 天前
LeetCode经典算法面试题 #24:两两交换链表中的节点(迭代法、递归法等多种实现方案详细解析)
算法·leetcode·链表·递归·双指针·迭代·链表交换
one____dream12 天前
【算法】相同的树与对称二叉树
b树·python·算法·递归