当前位置: 首页 > 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;
}

结果

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

相关文章:

  • 学而思网校发布AI编程新品,四重升级培育未来创新人才
  • Vue 中 v-show 与 v-if 的深度对比与性能分析
  • 第二十六章 流程控制: case分支
  • 乐观锁与悲观锁的实现和应用
  • Java 泛型技术详解
  • 【判断既约分数】2022-4-3
  • JDK21深度解密 Day 13:性能调优实战案例:高并发系统与内存密集型应用的优化秘籍
  • 【数据结构初阶】--算法复杂度的深度解析
  • Linux编程:2、进程基础知识
  • 后端下载限速(redis记录实时并发,bucket4j动态限速)
  • 如何在 Java 中优雅地使用 Redisson 实现分布式锁
  • 【Redis系列 04】Redis高可用架构实战:主从复制与哨兵模式从零到生产
  • 在Vue或React项目中使用Tailwind CSS实现暗黑模式切换:从系统适配到手动控制
  • [逆向工程] C实现过程调试与钩子安装(二十七)
  • win10环境配置-openpose pytorch版本
  • 【Hugging Face】实践笔记:Pipeline任务、BERT嵌入层、Train任务、WandB解析
  • 编程基础:执行流
  • 快速幂求逆元板子
  • 【论文阅读笔记】《A survey on deep learning approaches for text-to-SQL》
  • 《高等数学》(同济大学·第7版)第二章第五节“函数微分“
  • 电子商务与网站建设/千锋教育学费多少
  • 6黄页网站建设/搜索优化网络推广
  • 贵州省住房及城乡建设部网站/品牌seo培训
  • 无锡网站建设设计公司/深圳新闻最新事件
  • wordpress本站运行/网络营销策划书3000字
  • 做企业网站织梦和wordpress哪个好/站长之家怎么用