排列数字(回溯的应用)

题目链接,点击直达

题解:
1.用path数组来保存排列
2.bool st[]数组来标识当前数字是否被用过
3.dfs继续递归下一层
4,恢复现场,第 i 个位置填写某个数字的所有情况都遍历后, 第 i 个位置填写下一个数字
5.结束条件走到第n种方案

代码如下:

#include<iostream>
using namespace std;
const int N = 10;
int n;
bool st[N];//判断该数字是否用过
int path[N];//路径保存void dfs(int u)
{if(n == u) {    //n == u 说明已经枚举完了,可以输出该法案for(int i = 0;i < n;i++)printf("%d ",path[i]);printf("\n");return;}for(int i = 1;i <= n;i++){  //空位上可以选的数字为1-nif(!st[i])  //如果该数字没有被用过{path[u] = i;  //记录该数字st[i] = true; //记录该数字已经被用过dfs(u+1);     //继续往下一层搜st[i] = false; //恢复状态}}
}int main()
{cin>>n;dfs(0);return 0;
}

---排列数字---相关推荐

  1. dfs入门排列数字问题(一看就懂的讲解)

    dfs入门排列数字问题 dfs入门排列数字问题 一.问题概述 二.问题分析 三.代码分析 (一).如何表示填写完成 (二).如何判断该填哪个数 (三).如何表示填空 (四).实现dfs 四.代码全览 ...

  2. DFS和BFS概念及实践+acwing 842 排列数字(dfs) +acwing 844. 走迷宫(bfs)

    DFS (深搜), 也有说就是递归的 执着: 一直搜到底,然后回溯下一个节点 数据结构 : stack (这里的栈,实际上是编译器内部的栈, 所以说也可以看成递归, 递归内部也是调用编译器内部栈) 空 ...

  3. 重新排列数字使其刚好比当前值大 Next Greater Element III

    为什么80%的码农都做不了架构师?>>>    问题: Given a positive 32-bit integer n, you need to find the smalles ...

  4. 数字排大小C语言怎么编写,C语言排列数字大小

    优质回答 回答者:Paksun 排序数组可以使用冒泡算法:如果前一个数据比后一个大,则交换.#include //使用冒泡算法升序数组src voidsort(int*src,intlen) { in ...

  5. 18.排列数字(c++)简单的dfs详解

    给定一个整数 n,将数字 1∼n排成一排,将会有很多种排列方法. 现在,请你按照字典序将所有的排列方法输出. 输入格式 共一行,包含一个整数 n. 输出格式 按字典序输出所有排列方案,每个方案占一行. ...

  6. php从大到小排列数字,php输入几个数从大到小排序

    php输入几个数从大到小排序 以下程序实现了在网页输入几个数,按照从大到小排序并输出的功能,希望对需要的朋友有帮助: Document 请输入要排序的数据 - - - - if(isset($_POS ...

  7. (5)DFS(深度优先搜索算法):排列数字

    题解: 附代码: #include<iostream> using namespace std;const int N=10;int n; int path[N];//将每个节点的数据用数 ...

  8. HDOJ 1755 - A Number Puzzle 排列数字凑同余,状态压缩DP

    dp [ x ] [ y ] [ z ] 表示二进制y所表示的组合对应的之和mod x余数为z的最小数... 如可用的数字为 1 2 3 4...那么 dp [ 7 ] [ 15 ] [ 2 ] = ...

  9. python中对数字降序和升序_该程序查找在Python中按升序或降序排列数字的最低成本...

    假设我们有一个称为nums的数字列表,我们必须找到最小成本以任何顺序(升序或降序)对列表进行排序.此处的成本是任何元素的旧值和新值之间的差总和. 因此,如果输入类似于[2,5,4],则输出将为2. 为 ...

最新文章

  1. 会数据分析的人别再低调了,我怕你会因此错失100万奖金
  2. swoole不是php,Swoole
  3. VTK:可视化之Blow
  4. 一键拼出你的微信好友图片墙!
  5. android 渠道号_亲测:安卓打渠道包神器,1分钟出自动出100个渠道包
  6. twitter storm源码走读(五)
  7. Authentication for the REST APIs
  8. 【金融】【论文研读】 CAPITAL ASSET PRICES: A THEORY OF MARKET EQUILIBRIUM UNDER CONDITIONS OF...
  9. TCP/IP协议 TCP包深入理解
  10. 编程基本功:即使是脚本,也尽量减少硬代码,都使用变量
  11. 笔记本计算机bios设置,小技巧:关于笔记本BIOS设置的三招
  12. Mybatis多参数查询与列表查询不同方式实现
  13. 31个惊艳的数据可视化作品,感受“数据之美”!
  14. 容易的面试问题变得更加困难:给定数字1..100,在正好缺少k的情况下,找到缺失的数字
  15. sudo报错:no valid sudoers sources found, quitting
  16. 景观设计主题命名_景观设计主题
  17. zabbix 5.0中自定义监控单个IP的最大流量
  18. OGRE的学习资源简单总结
  19. MySql存储过程调试
  20. 自定义控件学习之钟表制作

热门文章

  1. echarts字变大_EChart 文字大小调整 饼状图为例
  2. Unity Shader Graph实现模型任意方向剖切(学习笔记/五毛钱特效)
  3. 【深度学习】(ICCV-2021)PVT-金字塔 Vision Transformer及PVT_V2
  4. 推荐系统_各种方法的损失计算过程
  5. 【畅购商城】微信支付模块之微信支付二维码
  6. python字典函数大全_python字典介绍
  7. alv 导出料号缺少最后一位
  8. 阿里云服务器(centos)安装MySQL
  9. 深度学习处理遥感影像入门教程
  10. windows7 和linux双系统,win7与linux双系统_win7 linux双系统