从 m (0<m≤26) 个大写字母中任意选出 n (0<n≤m) 个字母组合到一起,一共有多少种组合?

请编写程序,输入 m 和 n,输出从 A 开始的连续 m 个字母中任取 n 个字母的所有组合。

要求:每行输出一个组合(组合内的字母按升序排序),按字典序输出。

输入样例

4 3

输出样例

ABC
ABD
ACD
BCD
#include <iostream>
#include <cstdio>
using namespace std;
const int N = 26 + 5;
int m,n,a[N];   //数组a模拟盒子,n个盒子,m张牌
bool used[N];   //m张牌的状态,初始化false-表示牌在手中(没用过)
//在第step个盒子放牌
void dfs(int step);
int main()
{cin >> m >> n; //m个字母取n个 dfs(1);           //从第1个盒子开始放牌 return 0;
}
//在第step个盒子放牌
void dfs(int step)
{//到达第n+1个盒子时,放牌结束,输出当前的方案if(step == n + 1){//1-n号盒子的每张牌输出就可以for(int i = 1;i <= n;i++){printf("%c",a[i] - 1 + 'A');} printf("\n");return;} //枚举手中的n张牌a[step - 1]for(int i = a[step - 1] + 1;i <= m;i++){//i号牌如果在手中,也就是没用过//i号牌必须比上一个盒子(step - 1)的牌要大 if(!used[i]){//i号牌放入当前盒子(编号是step)a[step] = i;//修改i号牌的状态used[i] = true;//继续到第step+1盒子放牌,递归调用 dfs(step + 1); //回溯,当前盒子取回牌,尝试下一个方案                used[i] = false;}}
} 

7-3 组合问题(*)相关推荐

  1. CSS3——对齐 组合选择符 伪类 伪元素 导航栏 下拉菜单

     水平&垂直对齐 元素居中对齐 .center {margin: auto;width: 50%;border: 3px solid green;padding: 10px; } 文本居中对齐 ...

  2. MySQL 学习笔记(4)— 组合查询、子查询、插入数据、更新/删除表数据、增加/删除表中的列以及重命名表

    1. 组合查询 1.表的加减法 表的加法,即求 product 和 product2 的并集,UNION 运算会除去重复的记录 SELECT product_id, product_name FROM ...

  3. Eclipse中10个最有用的快捷键组合

    一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升. 1. ctrl+shift+r:打开资源 这可能 ...

  4. python基础——继承与派生、组合

    python基础--继承与派生 1 什么是继承: 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类成为基类或超累,新建的类成为派生类或子类 1.1 继承分为:单 ...

  5. OC 组合实现多继承

    OC无法完全先C++使用多继承,但可以采用组合的模式来代替继承模式.(协议实现)实现多继承的代码:举例现在ClassC需要继承ClassA中methodA.ClassB中methodB,具体的代码为: ...

  6. 设计模式笔记(9)---组合模式(结构型)

    Gof定义 将对象组合成树形结构以表示"部分--整体"的层次结构.Composite使得用户对单个对象和组合对象使用具有一致性. 在面向对象系统中,我们经常会遇到一类具有" ...

  7. 多重集合的排列和组合问题

    多重集合的排列和组合问题 标签: permutationn2c扩展 2012-04-17 16:18 5671人阅读 评论(0) 收藏 举报  分类: 算法(12)  版权声明:本文为博主原创文章,未 ...

  8. ui动效 unity_Unity - UIWidgets 2. 控件组合

    UIWidgets没有提供完整文档, 称可以去看Flutter的文档 中文 \ 英文 控件(Control)在Flutter中称为"Widget", 一个界面的若干控件是通过wid ...

  9. python计算四元素组合算法_python – 算法,列表元素之间的最近点

    这种方法是一种强力方法,但使用类似于Dijkstra算法的消除方法,这导致了更少的情况(使得算法最有可能快几个数量级,特别是对于大型列表或大量列表).告诉我你是否理解它,我可以澄清一下.可以在此处找到 ...

  10. java 穷举 排列组合,JavaScript递归穷举所有排列组合并找出重复值

    null export default { data() { return { resultArr:[] } }, mounted(){ this.sss('aaba','abac'); this.s ...

最新文章

  1. 【深度学习理论】通俗理解生成对抗网络GAN
  2. R语言使用tryCatch函数调试R代码实战:tryCatch函数运行正常R代码、tryCatch函数运行有错误(error)的R代码示例/tryCatch函数运行有警告(warning)的R代码示例
  3. 成都地震了[原创]不断更新
  4. python展开 c函数中的宏预处理_最基本的宏函数 课后习题9.2 (C语言代码)
  5. python中怎么把值添加进列表_在Python中为子列表添加值
  6. 白话Elasticsearch10-深度探秘搜索技术之基于dis_max实现best fields策略进行多字段搜索
  7. Windows系统下nodejs安装及配置
  8. np.identity()
  9. python把list转成字典_python中将list转为dict
  10. 为什么我学了6个月Python,还是找不到工作?
  11. jmespath查找JSON的工具
  12. C#可以对系统服务 检查增加删除启动停止重启(转)
  13. php字符串和数组基本方法,PHP字符串和数组
  14. java用JDBC连接数据库的方式
  15. Java Netty 初步
  16. 地表反照率数据、地表净辐射通量、太阳辐射数据、地表温度、地表显热通量、NDVI、NPP、土地利用数据
  17. 台达plc用c语言编程软件,台达plc编程
  18. [数据库】sql 查询语句 汇总
  19. python 人脸对比--百度API人脸相似度识别(超简单)
  20. 良心!苹果启动 MacBook Pro 电池更换计划

热门文章

  1. 联想笔记本无法访问百度,访问其它一切正常(前提有网络)
  2. 2021年化工自动化控制仪表考试内容及化工自动化控制仪表最新解析
  3. d3.js 力导向图 关系连接线 使用 path 标签时不显示的问题
  4. 使用 2 种方式实现动画的动态蒙版
  5. 办公本推荐计算机专业,适合办公用的Windows系统笔记本电脑推荐
  6. 腾讯云:实名认证步骤
  7. mac xcode自动化打包unity
  8. html5初中生能学会吗,初中生迎来坏消息,或不能再随便上私立高中,学生家长喜忧参半...
  9. 计算机考研难度最低的学校,计算机考研学校排名及难度1
  10. 书论47 米芾《宝章待访录》