Acwing 93. 递归实现组合型枚举

2023-11-16

 

 u + n - start < m 为剪枝操作,当前已选择的数 + 剩下的数 凑不出指定的个数m,直接return

#include <cstdio>

const int N = 30;

int path[N];
int n, m;

void dfs(int u, int start)
{
    if (u + n - start < m) return ;
    
    if (u == m + 1)
    {
        for (int i = 1; i <= m; ++ i) printf("%d ", path[i]);
        printf("\n");
        return ;
    }
    
    for (int i = start; i <= n; ++ i)
    {
        path[u] = i;
        dfs(u + 1, i + 1);
        path[u] = 0;
    }
}

int main()
{
    scanf("%d %d", &n, &m);
    
    dfs(1, 1);
    
    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Acwing 93. 递归实现组合型枚举 的相关文章

  • 正点原子阿尔法 TSLIB + QT5.15.5源码编译与移植

    正点原子阿尔法Qt移植 移植前说明 正点原子有几个版本的QT移植教程 给的资料的10 用户手册中就有2个版本的移植手册 我主要参考的5 12 9的移植说明 但移植的是5 15 5版本的QT QT移植前要对应版本 我发现所谓的对应版本其实就是
  • docker-compose安装和使用redis和mysql

    docker compose安装和使用redis和mysql 一 docker compose安装和使用 一 移除旧版本docker 二 判断docker是否已安装 二 启动docker配置开机自启 三 判断docker compose是否

随机推荐