递归实现组合型枚举

简介: 递归实现组合型枚举

1∼nn个整数中随机选出 m 个,输出所有可能的选择方案。

输入格式

两个整数 n,m ,在同一行用空格隔开。

输出格式

按照从小到大的顺序输出所有方案,每行 1个。

首先,同一行内的数升序排列,相邻两个数用一个空格隔开。

其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如 1 3 5 7 排在 1 3 6 8 前面)。

数据范围

n>0

0≤m≤n

n+(n−m)≤25

输入样例:

5 3

输入样例:

1 2 3 
1 2 4 
1 2 5 
1 3 4 
1 3 5 
1 4 5 
2 3 4 
2 3 5 
2 4 5 
3 4 5 
#include<iostream>
#include<cstdio>
using namespace std;
int n, m, start;
int st[30] = { 0 };
int used[30] = { 0 };
void dfs(int u,int start)
{
    int i;
    if (u + n - start < m) return;//剪枝,如果把后面所有的数都加上都不够m个,当前分支就一定无解
    if (u > m)
    {
        for (i = 1; i <= m; i++)
        {
            printf("%d ", st[i]);
        }
        puts("");
        return;
    }
    for (i = start; i <= n; i++)
    {
        st[u] = i;
        dfs(u + 1, i + 1);
        //恢复现场
        st[u] = 0;
    }
}
int main()
{
    cin >> n >> m;
    dfs(1, 1);
    return 0;
}
目录
相关文章
【动态规划刷题】整数拆分
【动态规划刷题】整数拆分
290 0
|
存储 算法
【数据结构】图邻接矩阵的创建完整代码
【数据结构】图邻接矩阵的创建完整代码
799 0
|
Python 容器
Python 注释和变量(2)
Python 注释和变量(2)
291 0
|
算法
7-2 找第k小的数 (20分) —— 分治算法
7-2 找第k小的数 (20分) —— 分治算法
790 0
|
4天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1735 2
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
12天前
|
人工智能 JSON 安全
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
阿里云AI安全产品联动防御Fastjson攻击
2451 13
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
|
12天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max-Preview深度全解析:2.4万亿参数旗舰MoE模型+Token Plan限时优惠完整落地指南
2026年7月,全新旗舰级混合专家大模型Qwen3.8-Max-Preview正式开放抢先体验,作为通义千问Qwen3系列规格最高、综合推理能力顶尖的新一代模型,该模型总参数量达到2.4万亿(2.4T),是当前线上可调用的原生多模态旗舰模型,综合推理水准对标海外顶级Fable 5模型,在复杂工程开发、长文档深度分析、多步骤智能体自治、跨境多语言创作、海量数据挖掘五大高难度业务场景实现跨越式性能提升。
1191 2

热门文章

最新文章