//dfs全排列
#include<stdio.h>
#include <string.h>
char temp[5] = {'A','B','C','D'};//seed
char visited[5] ;//
char out[5] ;//保存生成的字符串
int deep ;
int pos ;//out数组的位置
void print(){printf("%s\n",out);
}
int dfs(int step){int i ;if (step>=4)//4表示字符串长度是4print();for ( i = 0 ; i < 4 ; i ++){if (!visited[i]){out[pos] = temp[i];visited[i] = 1;pos++;dfs(step+1);visited[i] = 0;//回溯pos--;//回溯}}}int main(){memset(visited , 0 ,sizeof(visited));pos = 0;dfs(0);return 0;
}

我自己花时间画了一个比较形象的图,来帮助你们理解,全排列是怎么映射到树上并且怎么使用DFS来进行搜索和剪枝。希望有不对和可以补充的地方大家提给我。

如图是一个 3个字母ABC的全排列树。

全排列 DFS 回溯相关推荐

  1. [洛谷]P1706 全排列问题(简单dfs+回溯)

    dfs+回溯: Acode: #include<bits/stdc++.h> using namespace std; #define int long long int n,a[10]; ...

  2. c语言实现全排列并存储,C语言实现全排列和回溯法总结

    一.递归实现全排列 #include"cstdio" int A[]; void print_permutation(int n,int *A,int cur){ if(cur== ...

  3. DFS+回溯算法专题

    基础知识 回溯法是一种选优搜索法(试探法),被称为通用的解题方法,这种方法适用于解一些组合数相当大的问题.通过剪枝(约束+限界)可以大幅减少解决问题的计算量(搜索量). 深度优先搜索(Depth-Fi ...

  4. HDU1016 Prime Ring Problem dfs+回溯

    点击打开链接 Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  5. LeetCode 980. 不同路径 III(DFS+回溯)

    1. 题目 在二维网格 grid 上,有 4 种类型的方格: 1 表示起始方格.且只有一个起始方格. 2 表示结束方格,且只有一个结束方格. 0 表示我们可以走过的空方格. -1 表示我们无法跨越的障 ...

  6. [DFS|回溯法] leetcode 17 电话号码的字母组合

    [DFS|回溯法] leetcode 17 电话号码的字母组合 1.题目 题目链接 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 ...

  7. PAT1087 All Roads Lead to Rome (30)(最短路径+dfs+回溯)

    题意: 有N个城市,M条无向边,从某个给定的起始城市出发,前往名为ROM的城市.每个城市(除了起始城市)都有一个点权(称为幸福值),和边权(每条边所需的花费).求从起点到ROM所需要的最少花费,并输出 ...

  8. 洛谷 P1219-八皇后(dfs回溯)

    题目描述 网址传送:https://www.luogu.com.cn/problem/P1219 八皇后问题描述:介是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于 ...

  9. 【DFS+回溯+字符串】【洛谷P1019】【单词接龙】

    传送门 /*[DFS+回溯+字符串][洛谷P1019][单词接龙]https://www.luogu.com.cn/problem/P1019题意:给你很多个单词 一个开头首字母 每个单词至多用2次 ...

最新文章

  1. 研究生实名举报深圳大学导师强迫学生延迟毕业,违规报销,各方回应
  2. 第十二章 类和动态内存分配
  3. 判定两个tensor维度相同_Tensorflow源码解析5 -- 图的边 - Tensor
  4. 在一台机器上运行多个ActiveMQ实例
  5. OpenResty 安装,收集日志保存到文本文件
  6. BraftEditor:插入图片删除后在服务器将图片同步删除
  7. centos7.x-firewalld防火墙常用命令收集
  8. 一篇文章带你详解 HTTP 协议(网络协议篇一)
  9. xshell官网免费版下载
  10. 《嵌入式系统可靠性设计技术及案例解析》读书笔记(二)
  11. D7000、60D、K5、E5的详细对比评价(转)_我是亲民_新浪博客
  12. python tk/ttk制作 安卓群控助手,多台设备多任务多线程执行
  13. AI 工程师职业指南
  14. 精益看板方法从理论到实战 (6)—— 控制在制品数量(中)
  15. 面部AR遥控器:使用AR制作动画
  16. 远程无线视频监控知识
  17. LADY M过了自己的“赏味期限”?
  18. 问题 F: 超超的自闭意思
  19. 云媒体服务器设置在哪个文件夹,安装和使用Jellyfin配置Linux媒体服务器
  20. mysql注入带外通道攻击_MySQL注入攻击与防御

热门文章

  1. 我想说:工作没那么难找吧
  2. 发年终奖了,创了新高
  3. HTML5 API详解(17):Web SQL DataBase本地数据库
  4. STM32----摸石头过河系列(三)
  5. maftools|TCGA肿瘤突变数据的汇总,分析和可视化
  6. startsBBS在nginx环境下的部署,出现布局错误和验证码不能显示的解决方法
  7. RTX5 | 软件定时器01 - 创建一个软件定时器(单次运行)
  8. tablednd保存 php,TableDnD-JavaScript中文网-JavaScript教程资源分享门户
  9. Linux笔记-centos中大量tcp状态为TIME_WAIT
  10. Java工作笔记-Nginx配置IPHash(单点登录)