当前位置: 首页 > 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
http://www.xdnf.cn/news/1035289.html

相关文章:

  • 推理智能体RAG
  • 在 Linux 系统中使用 `sudo su`切换超级管理员不用提示密码验证的配置方法
  • 【北京迅为】iTOP-4412精英版使用手册-第二十二章 时间函数专题
  • Phthon3 学习记录-0613
  • leetcode2-两数相加
  • pycharm 2025.1.1-专业版jupyter notebook远程连接
  • 汇编语言学习(四)——汇编语言程序
  • 微信小程序使用图片实现红包雨功能
  • 算法专题八: 链表
  • scanf 读取字符串
  • 本地密码生成管理工具,自定义生成密码
  • Vue3组件生成唯一标识符方法
  • 16.vue.js watch()和watchEffect()的对比?(追踪依赖)(3)
  • 华为OD机考-货币单位换算-字符串(JAVA 2025B卷)
  • CMake 构建系统概述
  • LeetCode - 153. 寻找旋转排序数组中的最小值
  • Hive SQL执行流程深度解析:从CLI入口到执行计划生成
  • 计网复习知识(16)传输层及其协议功能
  • 贝塞尔曲线:优雅的数学艺术
  • C# 解析 URL URI 中的参数
  • OpenWrt | 解决NTFS格式的硬盘意外断电之后无法再次挂载的问题
  • 轻量免安装 透明背景图标一键提取,系统文件图标随取随用
  • NGINX 四层共享内存区同步模块实战 `ngx_stream_zone_sync_module`
  • qml显示svg矢量图形
  • FreeRTOS的低功耗Tickless模式
  • RLHF调参实战手册:实用Trick、现象排查与解决思路(持续更新)
  • 动态BGP服务器的用途都有什么?
  • Softhub软件下载站实战开发(二):项目基础框架搭建
  • 萌系盲盒陷维权风暴,Dreams委托David律所已立案,速避雷
  • 历史数据分析——贵州茅台