转载请注明出处

题目描述

输出从前M个字母中取N个的无重复字母排列

Input

输入M N 
1<=M=10, N<=M

Output

按字典序输出排列

Sample Input

4 2

Sample Output

A B
A C
A D
B A
B C
B D
C A
C D
C D
D A
D B
D C 

Hint

要用到剪枝

 1 /**
 2     网址: http://www.codeup.cn/problem.php?id=2906
 3     题目: 从前M个字母中取N个的无重复排列[2*+]
 4 */
 5 #include <stdio.h>
 6 #include <memory.h>
 7
 8 char s[15];
 9 char str[]={'A','B','C','D','E','F','G','H','I','J','H','L','M','N'};
10 int M,N;
11 int colected[15];///实时标记已入选字符
12 int stack[15],top = 0;
13
14 void print(){
15     int i;
16     for(i = 0; i < N - 1; i++){
17         printf("%c ",s[i]);
18     }
19     printf("%c\n",s[i]);
20 }
21
22 void dfs(int cur,int last){
23     int i;
24     if(cur == N){
25         print();
26         colected[stack[--top]] = 0;
27         return ;
28     }
29
30     for(i = 0; i < M; i++){
31         if(colected[i] != 1){
32             s[cur] = str[i];
33             stack[top++] = i;
34             colected[i] = 1;
35             dfs(cur + 1,i);
36         }
37
38     }
39     if(i == M)
40         colected[stack[--top]] = 0;
41 }
42
43 int main(void){
44     while(scanf("%d%d",&M,&N) != EOF){
45         dfs(0,0);
46     }
47     return 0;
48 }

转载于:https://www.cnblogs.com/yfs123456/p/5402525.html

从前M个字母中取N个的无重复排列(回溯)相关推荐

  1. c语言字母中取模是什么意思,c语言如何取模运算

    匿名用户 1级 2018-06-06 回答 C语言用取模运算符"%"进行取模运算. 取模运算符"%"的作用是求两个数相除的余数.例如,请看下面这段代码: x=1 ...

  2. 在Excel中取汉字的英文首字母或者全拼

    与上一篇文章相关,在Excel中取汉字的英文首字母 在Excel中使用,觉得麻烦的,直接点最下面,复制附件,里面有例子,非常好用非常好用 需要说明的是,代码不是我写的,原作者如果看到了可以联系我,我会 ...

  3. python字典取值_python 字典中取值的两种方法小结

    python 字典中取值的两种方法小结 如下所示: a={'name':'tony','sex':'male'} 获得name的值的方式有两种 print a['name'],type(a['name ...

  4. 怎样从tensorflow的generator object Estimator.predict at 0x7fb1ecefeaf0中取数据

    怎样从tensorflow的<generator object Estimator.predict at 0x7fb1ecefeaf0>中取数据 通过以下代码: predictions = ...

  5. loadrunner中的c函数----从参数列表中取参数并与特定字符进行字符串比较。

    今天在www.sztest.net上看到一个关于lr的问题,自己试着解决了一下.主要是想做出一个从参数列表中取参数,并和字符串常量进行比较的功 能.把代码贴到下面.其实是很简单的.问题主要出现在lr_ ...

  6. vue里获取不到data_vue methods中取不到data值

    vue methods中取不到data值 export default { name: "sysAdd", data() { return { form: { name: '', ...

  7. hdu4810 Cn中取i异或和

    题意:      给你n个数,让你输出n个数,没一次输出的是在这n个数里面取i个数异或的和(所有情况<C n中取i>). 思路:      首先把所有的数都拆成二进制,然后把他们在某一位上 ...

  8. Delphi 中取本机的计算机名、IP地址、Windows登录的用户名

    //作者:陆岛工作室 XOtec Studio //组件库:XOtecExpress. 几个在Delphi 中取本机的计算机名.IP地址.Windows登录的用户名的函数. uses Windows, ...

  9. Thymeleaf读取model里面的对象||Thymeleaf读取model里面的集合||Themeleaf在js中取值||访问带参数的消息||ThymeleafObjects的使用[取三大作域的值

    Thymeleaf读取model里面的对象 Student.java package com.sxt.domain;import lombok.AllArgsConstructor; import l ...

最新文章

  1. C#读取excel数据到datatable中
  2. HDU2018题求母牛数量C++
  3. Exadata上的分页查询性能测试
  4. VTK:相互作用之MoveAGlyph
  5. Android线程详解
  6. 迭代器、与集合的坑使用时要注意
  7. Nat Biotechnol | 杨弋团队报道RNA光遗传学工具,可时空精确操纵活细胞RNA代谢与功能...
  8. java判断字符串是子串_【Java】判断字符串是否包含子字符串
  9. C#:获取web.config中配置的IP地址
  10. dnf外挂java代码,使用Java实现简朴的斗地主案例_rust辅助,绝地求生卡盟
  11. vscode 软件 git提交代码步骤(结合webstorm软件)
  12. 嵌入式c语言编程,嵌入式C语言编程集萃.pdf
  13. 解决Linux内核问题实用技巧之-dev/mem的新玩法
  14. 使用 git tag 给项目打标签
  15. CSS——微信朋友圈图片样式实现方法
  16. 计算机金融专业美国学校排名,美国金融专业都有哪些种类?
  17. GTASA圣安地列斯如何打MOD2(简单教程)
  18. 陈天奇:机器学习科研的十年
  19. 云服务器常见的十个问题
  20. ftp服务器响应很慢,有果必有因:FTP传输速率慢和TCP窗口、网络时延的因果案例...

热门文章

  1. 交互系统的构建之(四)手掌与拳头检测加盟TLD
  2. L3-1 森森旅游 (30 分)
  3. 7-2 字符串逆序 (15 分)
  4. java程序初始化_Java程序初始化顺序
  5. idea部署tomcat并实现简单的web项目
  6. 阿里云自动java和mysql数据库_阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程)...
  7. linux临时挂载别的文件目录_Linux目录结构及开机流程详解
  8. 贝叶斯方法(Bayesian approach) —— 一种概率解释(probabilistic interpretation)
  9. 如何把高版本的sqlserver 还原到低版本的 sqlserver
  10. Qt5.6.0+OpenGL 纹理贴图首战告捷