当前位置: 首页 > news >正文

第11次课 深搜1 A

课堂回顾

递归

练一练 

 课堂学习

探秘蚁巢

蚁穴有许多的房间,胡乱走很容易迷路,这里提供了一种搜索方法。

1.遇到分岔口先搜索左边,再搜索右边
2.没有路时返回上一个房间,换其它路继续搜索
3.搜索过的房间不再搜索

从一个点开始,按照一定的顺序(先左后右)
沿着某条路往下走,能深则深
如果走完后发现不能到达目标,退回上一个点(不能深则退),

换条路,然后继续走,如此往复,直至可能的结果都被搜索完。

这种能深则深,不能深则退的方法,称之为深度优先搜索。

深搜(深度优先搜索)也可以搜索迷宫
假设有一个3行3列共9个房间的迷宫,迷宫内有一个宝箱。
每个房间都可以通往周围四个房间,但是不能走出迷宫。

1.规定一个搜索顺序,例如:下右左上
2.无法搜索时,返回上一个房间换其它方向继续搜索
3.访问过的房间不再访问

如果迷宫没有宝箱,按照刚才的搜索方法,从(1,1)开始搜索,最后搜索的房间是哪一个?

结论

练一练---A

深度优先搜索模板

#include<bits/stdc++.h>
using namespace std;
int vis[4][4];//标记数组
int ans;//统计搜索过的房间数量
int dx[4]={1,0,-1,0};//下右上左
int dy[4]={0,1,0,-1};//下右上左
void dfs(int x,int y){if(ans==9){//递归边界条件cout<<x<<','<<y;//最后搜索的房间return ;}for(int i=0;i<4;i++){int nx=x+dx[i];int ny=y+dy[i];if(nx>0&&nx<=3&&ny>0&&ny<=3 && vis[nx][ny]==0){vis[nx][ny]=1;//标记已搜索ans++;//累加搜索过房间数量dfs(nx,ny);//从(nx,ny)继续搜索}}
}
int main(){vis[1][2]=1;//标记(1,2)房间搜索过ans++;//搜索过1个房间dfs(1,2);//从(1,2)开始搜索return 0;
}

课堂训练

1744 迷宫

描述

有 1 个 n×n 的迷宫方格,在方格内“0”表示可以通行,“1”表示是障碍物不能通行,在(n,n)位置有一个宝箱。现在有个人在左上角( 1 , 1 )的位置,他在迷宫内可以向当前位置的上、下、左、右四个方向行走,能不能在迷宫里走到宝箱位置( n,n )。注意:测试数据保证起点和终点均为“0”,走的过程不能走出迷宫。

输入描述

输入第一行为 n(2 ≤n≤10 ),表示 n×n 的方格,接下来有 n 行,每行 n 个整数, 0 表示可以行走,1 表示不能行走,每个整数之间有个空格。

输出描述

如果可以走到终点,输出“YES”,否则输出“NO”

样例输入 1 

3
0 0 1
1 0 0
0 1 0

样例输出 1 

YES
#include<bit

相关文章:

  • Javascript什么是回调函数?
  • LangChain面试内容整理-知识点13:输出解析(OutputParser)模块
  • Seata的事务隔离级别是如何保证的?
  • 案例:塔能科技智启某市光域,勾勒城市照明宏图
  • NY248NY254美光科技闪存NY258NY261
  • 使用 C# 源生成器(Source Generators)进行高效开发:增强 Blazor 及其他功能
  • 地理空间视角下的 SIR 传染病模型模拟与可视化
  • xilinx gt的RX EQ
  • C++ QT开发学习指南-从入门到实战项目
  • 浏览器的组成部分与工作原理
  • Spring Boot中Controller层规划与最佳实践详解
  • Docker全平台安装指南:从零到一构建容器化环境(满级版)
  • OVS Faucet Tutorial笔记(下)
  • CQF预备知识:Python相关库 -- 通用非均匀随机数抽样 scipy.stats
  • [架构之美]解决Windows 10主机与Windows 10虚拟机之间无法拖拽复制问题
  • 黑马教程强化day3-1
  • 如何写出优秀的单元测试?
  • YOLOv3 的网络结构详解
  • 【Docker基础】Docker核心概念:资源隔离详解
  • [学习] 多项滤波器在信号插值和抽取中的应用:原理、实现与仿真(完整仿真代码)
  • 重庆网站建设最大/爱站网seo工具
  • 怎么学做一件完整衣服网站/怎样在百度打广告
  • 加强网站及微信平台建设/银川网站seo
  • 北京企业网站模板建站开发/站长之家字体
  • 手机网站模板 网址/如何快速推广自己的品牌
  • 用dz做网站怎么设置数据库/sem竞价推广是什么