今天上午听到,那个非常6+1的李咏先生因癌症去世

DFS算法的基本模型

深度下,不撞南墙不回头,就是一直往后找,知道没有路了,向后返回。

想起一首民谣,《可能否》--木小雅 https://music.163.com/#/song?id=569214126

现在可能也就民谣还有一些安静了,好像雷子的歌也有点厌了。

木小雅Olivia:谢谢云村pick我这块小石头,也谢谢优秀的制作团队,更谢谢来听这首歌的你。愿多年以后,你撞过的南墙,都成为坦途;你遇见过的绝望,都成为最美的盛放。

今天也要上班吗:不撞南墙不回头 不见黄河不死心。

UP:山有木兮木有枝,心悦君兮君不知。

好了话归正题。

void dfs(int step){//1 判断达到边界了吗//2 没有达到边界就尝试每一种方法for(i=1;i<=n;i++){//继续下一步dfs(step+1);}return;
}

两个例题

1

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int a[10],book[10],total=0;
/*[][][]+[][][]==[][][]
[]种只能填1-9,每个数字只能使用一次
暴力枚举方法 和 DFS方法
还是9个格子,放九张牌
*/
void dfs(int step){int i;if(step == 10){//判断边界 就是所以格子都填满了 满足!?if((a[1]+a[4])*100+(a[2]+a[5])*10+a[3]+a[6]== a[7]*100+a[8]*10+a[9]){total++;printf("%d%d%d+%d%d%d=%d%d%d\n",a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]);}return;}for(i=1;i<=9;i++){if(book[i] == 0){a[step]=i;book[i]=1;dfs(step+1);book[i]=0;}}return;
}
int main(){dfs(1);printf("%d",total/2);system("pause");return 0;
}

2

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int a[10],book[10],n;// a[]为盒子数组 book[i]用来表示i有没有用到,n为盒子数目//全局变量在没有赋值以前系统默认为0,而局部变量在没有赋值以前的值是不确定的,所以在声明局部变量的时候一定要初始化。
/*本题是  啊哈算法第四章 扑克牌的全排列有N张不同的扑克牌 和 N个不同格子最多有 N!个排列方式对于第一个 格子有N种选择,第二个 N—1个选择,最后一个 1个格子因为顺序,相互独立,相乘运算。 跟生物 N种氨基酸可组成N长的氨基酸链相同
*/
/*0—>【1】 【2】 【3】,4{ 4 不存在}
假设有三张牌1,2,3,三个格子123
step—>一步一步向前放牌,到4的时候说明放好了一次例如 1 2 3输出
收回【3】中的牌没有其他方法,
再收回【2】中的,此时【2】处的for循环已经读过2了,所以还有一种排序,
【2】处放入 3,dfs(step+1)->【3】处还可以放入2
这样递归自己 收回【1】……………,递归给出答案
*/
void dfs(int step){//深度优先搜索算法 Deep First Searchint i;if(step == n+1){//step超出格子【N】范围说明完成一次排序for(i=1;i<=n;i++){printf("%d",a[i]);}printf("\n");return;//返回之前最近一次调用DFS的地方,}
//处于Step位置,没有达到要输出就,判断这个位置可以放入什么牌for(i=1;i<=n;i++){if(book[i] == 0){//for循环判断扑克牌 I是否还在手中a[step]=i;//在放入格子book[i]=1;//表明已经使用dfs(step+1);//向下一格子看看,递归book[i]=0;//完成一次就收回刚刚尝试的扑克牌,进行下一次尝试}}return;
}
int main(){scanf("%d",&n);//N个格子和扑克dfs(1);//从第一次格子开始放system("pause");//暂停return 0;
}

【DFS】不撞南墙不回头—深度优先搜索算法[Deep First Search]相关推荐

  1. 算法简介:不撞南墙不回头----深度优先搜索算法(DFS)

    算法简介:不撞南墙不回头----深度优先搜索算法(DFS) 算法简介 算法简介 DFS算法简介 略 DFS算法思想 首先以一个未被访问过的顶点作为起始顶点,沿当前顶点的边走到未访问过的顶点;当没有未访 ...

  2. 不撞南墙不回头-深度优先搜索算法

    深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次. 今天介绍算法实现的两种形式 ...

  3. 不撞南墙不回头——深度优先搜索

    哈喽!这里是一只派大鑫,不是派大星.本着基础不牢,地动山摇的学习态度,从基础的C语言语法讲到算法再到更高级的语法及框架的学习.更好地让同样热爱编程(或是应付期末考试 狗头.jpg)的大家能够在学习阶段 ...

  4. 不撞南墙不回头----------深度优先搜索

    深度优先搜索算法(Depth First Search,简称DFS):一种用于遍历或搜索树或图的算法. 沿着树的深度遍历树的节点,尽可能深的搜索树的分支.当节点v的所在边都己被探寻过或者在搜寻时结点不 ...

  5. 不撞南墙不回头-深度优先搜索

    book[]数组对元素进行标记,进行判断遍历 #include<stdio.h> #include<windows.h> int a[10], book[10], n;void ...

  6. 第4章第1节-不撞南墙不回头-深度优先搜索

    /*使用深度优先搜索解决数的全排列问题*/ /* 深度优先搜索的基本模型: void dfs(int step) {     判断边界     尝试每一种可能 for(i = 1;i <= n; ...

  7. [C] 不撞南墙不回头——深度优先搜索

    深度优先搜索DFS的概念 dfs:Depth First Search 理解深度优先搜索的关键在于解决当下该如何做.至于下一步该如何做则与当下该如何做是一样的. 通常的方法就是把每种可能都去尝试一遍( ...

  8. 不撞南墙不回头----深度优先搜索

    输入一个数n,输出1~n的全排列. #include<stdio.h>int a[10],book[10],n,count=0;void dfs(int step){int i;if(st ...

  9. “ 一条路走到黑,不撞南墙不回头”——C++【DFS(深度优先搜索算法)】入门讲解

    Hello,大家好,我是Amy,好久不见(我真好意思说好久不见)~ 虽迟但到,你们一直催更的dfs算法终于来啦~ 话不多说,让我们直接进入主题吧! 目录 缺点 简介 "地图类" 深 ...

最新文章

  1. 3项目在ie11浏览器打不开_Chrome/Safari都输了:新Edge浏览器率先实现100%支持HTML5...
  2. 北京沙龙报名 | 关于Dubbo开源的那些事儿
  3. 了不起的女子力:美妆消费蓝海与趋势赛道
  4. (王道408考研数据结构)第八章排序-第三节2:堆与堆排序
  5. 小白入门angular-cli的第一次旅程(学习目标 学习目标 1. 路由基础知识)补充学习...
  6. iofactory.php,CI框架下引入类库资源PHPPowerPoint报出“ Cannot redeclare class IOFactory”...
  7. 跟随腾讯WeTest一起来2019Unreal Open Day!
  8. Eclipse·Maven·构建SpringMVC简单工程-2
  9. 电脑公司最新稳定win7系统下载
  10. CODING 助力江苏高速信息实现组织敏捷与研发敏捷,领跑智慧交通新基建
  11. Power BI数据源之web
  12. html如何设置整体字体颜色,html字体颜色 html如何设置字体颜色
  13. DOTween和iTween比较
  14. threejs光源的使用
  15. GNU开发工具——GNU Binutils快速入门
  16. Gitbub远程仓库的访问
  17. 影响因子,计算机科学,影响因子最高计算机科学期刊(前50种).doc
  18. 体积渲染(3)——3D值噪声+光线步进实现体积云
  19. docekrfile
  20. 华为ACL配置(基本ACL+高级ACL+综合应用)

热门文章

  1. 航天信息管理软件无法连接服务器,航天信息客户端怎样连接服务器
  2. 2021-12-11 WPF上位机 110-欧姆龙串口转网口的封装
  3. CISP、CISP-PTE、CISP-DSG、CISP-IRE报名条件、考试内容、考题结构
  4. 滴滴开源 Levin:数据闪电加载方案
  5. Elasticsearch Analyzer 内置分词器
  6. 为教育工作者精选的8款堪称「神器」的软件,快看过来
  7. 支付宝与微信新年红包战之我见
  8. 使命召唤10计算机丢失,快速设置win10系统玩使命召唤9 xinput1 3.dll丢失的解决教程...
  9. live.cn邮箱注册帐号方法
  10. 轻量级Kubernetes之k3s:4:离线安装与部署