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

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;
}
相关推荐
OuO-22 天前
笔试强训 Day 44:最小差值、kotori 和素因子、dd 爱科学 1.0
二分查找·动态规划·贪心·模拟·记忆化搜索·递归·状态表示优化
漂流瓶jz16 天前
UVA-12627 奇怪的气球膨胀 题解答案代码 算法竞赛入门经典第二版
算法·图论·递归·aoapc·算法竞赛入门经典·uva·12627
鱼子星_18 天前
《算 · 法》题目解析篇(1):最近公共祖先问题,线段树,最长回文子序列
c++·算法·动态规划·递归
窗户1 个月前
递归的编译优化(2)
函数式编程·递归
文盲老顾2 个月前
sqlserver 根据IP和数量,计算应该使用的掩码IP地址段
sqlserver·递归·自定义函数·cte·ip掩码·表值函数
码上有光2 个月前
c++:二叉搜索树(map和set的底层结构)
开发语言·c++·递归·二叉搜索树
8Qi82 个月前
LeetCode 235. 二叉搜索树的最近公共祖先(LCA)
算法·leetcode·二叉树·递归·二叉搜索树·lca·迭代
8Qi83 个月前
LeetCode 236. 二叉树的最近公共祖先(LCA)
算法·leetcode·二叉树·递归·lca·后序遍历
8Qi83 个月前
LeetCode 124. 二叉树中的最大路径和(Hard)
算法·leetcode·二叉树·递归
8Qi83 个月前
LeetCode 148. 排序链表 —— 解法一:自顶向下递归(分治 + 归并)
数据结构·算法·leetcode·链表·递归·分治·归并