当前位置: 首页 > news >正文

【题解-洛谷】P10448 组合型枚举

题目:P10448 组合型枚举

题目描述

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

输入格式

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

输出格式

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

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

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

输入输出样例 #1

输入 #1

5 3

输出 #1

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

说明/提示

对于所有测试数据满足 0 ≤ m ≤ n 0 \le m \le n 0mn , $ n+(n-m) \le 25 $。

代码

#include<iostream>using namespace std;const int Maxn = 25 + 10, Maxm = 25 + 10;int n, m, path[Maxm], vis[Maxn];void dfs(int pos){if(pos == m){for(int i = 0; i < m; i ++){cout << path[i] << " ";}puts("");return;}for(int i = 1; i <= n; i ++){if(!vis[i] && i > path[pos - 1]){path[pos] = i;vis[i] = 1;dfs(pos + 1);vis[i] = 0;}}
}int main(){cin >> n >> m;dfs(0);return 0;
}

结果

在这里插入图片描述
在这里插入图片描述

http://www.lqws.cn/news/214669.html

相关文章:

  • Cloudflare 免费域名邮箱 支持 Catch-all 无限别名收件
  • A Execllent Software Project Review and Solutions
  • C++课设:实现简易文件加密工具(凯撒密码、异或加密、Base64编码)
  • day24 元组和OS模块
  • 【STM32F1标准库】理论——定时器中的输出比较
  • 线程池封装
  • 【深度学习-Day 24】过拟合与欠拟合:深入解析模型泛化能力的核心挑战
  • PLC有脉冲输出,但伺服电机无法旋转
  • 移动应用开发专业核心课程以及就业方向
  • 算法-多条件排序
  • STM32学习笔记:定时器(TIM)原理与应用(详解篇)
  • Windows 下搭建 Zephyr 开发环境
  • VirtualBox启动失败@Ubuntu22.04 说是配置文件有问题
  • ubuuntu24.04 编译安装 PostgreSQL15.6+postgis 3.4.2 + pgrouting 3.6.0 +lz4
  • Oracle 客户端深度指南:SQL Developer 与 PL/SQL Developer 全面安装使用教程
  • SQL慢可能是触发了ring buffer
  • 《探秘跨网段局域网IP广播:解锁网络通信的新姿势》
  • Tableau for mac 驱动
  • element树结构el-tree,默认选中当前setCurrentKey无效
  • 从标准输入直接执行 ELF 二进制文件的实用程序解析(C/C++实现)
  • 【LeetCode】3170. 删除星号以后字典序最小的字符串(贪心 | 优先队列)
  • 电脑悬浮窗便签怎么实现四象限玩法?
  • 黄柏基因组-小檗碱生物合成的趋同进化-文献精读142
  • 1.认识Spring
  • 安卓基础(编译.Class)
  • python的numpy的MKL加速
  • 绘制饼图详细过程
  • 快速上手Linux全局搜索正则表达式(grep)
  • 探秘IBMS系统:能集成哪些建筑子系统实现一体化管理
  • 关于汉语普通话元音音位最好归纳为几个的问题