1294 全排列

时间限制: 1 s
空间限制: 128000 KB
题目等级 : 黄金 Gold

题解
查看运行结果

题目描述 Description

给出一个n, 请输出n的所有全排列

输入描述 Input Description

读入仅一个整数n   (1<=n<=10)

输出描述 Output Description

一共n!行,每行n个用空格隔开的数,表示n的一个全排列。并且按全排列的字典序输出。

样例输入 Sample Input

3

样例输出 Sample Output

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

数据范围及提示 Data Size & Hint

分类标签 Tags 点此展开

搜索
代码:
#include< cstdio >
#include< iostream >
using namespace std;
int n,visit[11];
int a[11];
void dfs(int b)
{
if(b==n+1)
{
for(int i=1;i<=n;++i)
printf("%d ",a[i]);//注意一定要把当前取得的点放到一个数组中去,到了最后时把数组输出,否则如果是深搜的时候,每找到一个就输出,会使输出的数据不全*/ 
printf("\n");
return ;
}
for(int i=1;i<=n;++i)
{
if(!visit[i])
{
visit[i]=1;//标志设为这个i已经在排列中了
a[b]=i;
dfs(b+1);
visit[i]=0;//回溯
a[b]=0;
}
}
}
int main()
{
scanf("%d",&n);
int b=1;
for(int i=1;i<=n;++i)
{
if(!visit[i])
{
visit[i]=1;
a[1]=i;
dfs(b+1);
visit[i]=0;
a[1]=0;
}
}
return 0;

转载于:https://www.cnblogs.com/c1299401227/p/5370719.html

104.全排列(深搜)搜索与回溯相关推荐

  1. 深入递归、深搜dfs、回溯、剪纸学习。

    深入递归,深搜dfs,回溯,剪枝 参考于博客 一.双管齐下解递归 "逐步生成结果"类问题之数值型 自下而上的递归(递推,数学归纳,动态规划) 解决简单情况下的问题. 推广到稍复杂情 ...

  2. 小猫爬山 (深搜+搜索顺序优化)

    翰翰和达达饲养了N只小猫,这天,小猫们要去爬山. 经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<). 翰翰和达达只好花钱让它们坐索道下山. 索道上的缆 ...

  3. 深搜、广搜、搜索剪枝

    搜索与回溯讲解 文章目录 深搜 方向向量: DFS代码: 题目讲解: 八皇后问题 字符序列 自然数的拆分 广搜 BFS代码: 题目讲解: 瓷砖 关系网络 bfs与dfs的用途与区别 搜索剪枝 可行性剪 ...

  4. 深搜+回溯+广搜小结

    深搜 按照一定的顺序和规则,一直往深处走,直到走不通再返回,换一种路径重复上述步骤. 深搜一般可以找到问题的所有答案,但问题规模较大时,解集树的深度就会比较大并且比较宽,时间复杂度就会较高.与广搜相比 ...

  5. DSF深搜入门全排列笔记nyoj366

    DFS深搜之全排列(初学) 题目描述 思路解析与dfs模板伪代码 题目描述 以nyoj2.0 366题为例,记录入门dfs的代码,并理清思路,方便以后复习巩固,初学dfs如果有问题还请指出~ 链接: ...

  6. 搜索与图论1—深搜、宽搜、拓扑排序

    本人的LeetCode账号:魔术师的徒弟,欢迎关注获取每日一题题解,快来一起刷题呀~ 本人Gitee账号:路由器,欢迎关注获取博客内容源码. 文章目录 一.深度优先搜索 1 排列数字 2 N皇后 二. ...

  7. DFS-深度优先搜索(深搜)

    深度优先搜索(Depth First Search)是搜索的手段之一.它是从某个状态开始,不断的转移状态直到无法转移,然后退回到前一步的状态,继续转移到其他的状态,如此不断的重复,直至找到最终的解. ...

  8. 「leetcode」332.重新安排行程【回溯算法/深搜】详细图解!

    本文 https://github.com/youngyangyang04/leetcode-master 已经收录,里面还有leetcode刷题攻略.各个类型经典题目刷题顺序.思维导图,可以fork ...

  9. 算法之路——深搜、广搜(简单搜索)

    搜索 通过一定的顺序,枚举每一个数据(经常会通过一些判断条件去掉无意义的数据,即剪枝),找到想要的数据的过程. 深度优先搜索(dfs) 深度优先搜索属于图算法的一种,是一个针对图和树的算法,应为缩写为 ...

最新文章

  1. 软件工程概论个人作业02
  2. 复旦大学邱锡鹏教授:一张图带你梳理深度学习知识脉络
  3. 整个领域没了!学术界有史以来最大的丑闻
  4. 在内网IT服务门户里申请Windows Azure虚拟机
  5. python 能干嘛-python能干嘛
  6. 为什么搜索引擎都上HTTPS?SSL证书竟是如此重要—Vecloud微云
  7. og-bin=mysql-bin_TiDB Binlog 常见问题
  8. Silverlight 解谜游戏 之十三 游戏暗示(2)
  9. pagerank数据集_从数据结构到算法:图网络方法初探
  10. jzoj1274-游历的路线【分层图,SPFA】
  11. LeetCode 186. 翻转字符串里的单词 II
  12. 牛逼!支付宝高级Java三面题目:线程锁+事务+雪崩+Docker等
  13. fofa域名检测存活工具_检测cdn和寻找真实ip的一些方法总结
  14. 爆赞,java后端开发路线。
  15. 服装PDM产品数据管理
  16. 软件测试基础理论知识点
  17. java把汉字转换成拼音
  18. QQ再次被大规模盗号
  19. Makefile语法基础
  20. jpg图片损坏怎么修复?可以试试这个方法

热门文章

  1. mockjs针对value生成随机数值(随机字符串,数值,日期,url,图片地址,email,ip等)
  2. Qt for Android解决启动时黑屏(或白屏)的问题
  3. 我的世界 文件保存位置
  4. 自动开料机器人_工业4.0智能家具无人化生产线 自动化无人化大势所趋
  5. 票务系统思维导图_【思维导图】第六章:气体灭火系统
  6. python基本输入输出函数有_新手学Python,输入输出函数、赋值语句常见5个错误,弄懂即过关...
  7. Snuke Festival(二分法)
  8. linux 专家认证,ONAP专家认证 (COP)
  9. arthas 查看哪个方法调用最耗时_Arthas实战
  10. 线程的状态转换、sleep()、wait()、yeild()、终止线程的方法、线程之间的协作(join()、wait() notify() notifyAll()、await() signal() )