算法-双指针、BFS与图论-1113. 红与黑

题目

思路

  1. 本题相当于问BFS中的当前点所在的区域连通块有多少个 ==Flood Fill算法 (可参考以下链接:洪水覆盖算法(Flood Fill):颜色填充-CSDN博客)
  2. 本题用DFS实现Flood Fill算法
  3. DFS是否需要恢复现场:(重要!!!!!)
    AcWing 842. 通过全排列问题 深入探讨DFS回溯以及恢复现场的本质 - AcWing
    判断DFS是否需要恢复现场_dfs 不用还原现场-CSDN博客

代码

# 搜索的四个方向
dx =[-1,0,1,0]
dy =[0,1,0,-1]
def dfs(x,y):# 初始化相关的参数:连通块个数,访问数组等;cnt = 1st[x][y]=True# 四个方向进行搜索for i in range(4):a=x+dx[i]b=y+dy[i]# 一些条件的判断:是否越界,是否能走,是否走过if a<0 or a>=n or b<0 or b>=m:continue;if g[a][b]!='.':continueif st[a][b]:continuecnt+=dfs(a,b)return cntwhile True:# 读入基本信息m,n=map(int,input().split())if n==0 or m==0 :breakg =[input() for _ in range(n)]# 获取起始坐标x,y=0,0for i in range(n):for j in range(m):if g[i][j]=='@':x,y=i,j# 设置访问列表st=[[False] * m for _ in range(n)]  print(dfs(x,y))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/538563.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac电脑解决无法打开软件

文章目录 报错内容解决方法一方法二方法三 报错内容 macOS无法验证此App是否包含恶意软件。 解决方法一 打开系统偏好设置>安全性与隐私>通用&#xff0c;这个时候有个按钮&#xff0c;“仍然允许”点击即可。 方法二 按住Control键点按应用, 然后打开&#xff0c…

Xcode15.3 -Library ‘iconv2.4.0‘ not found

今天升级了一下Mac mini 和Xcode15.3&#xff0c;运行项目就报 Library ‘iconv2.4.0’ not found的错误 xcode升级到&#xff1a;15.3(15A240d) 项目在旧版本下&#xff0c;是能通过编译 并且能运行的。 解决方法&#xff1a; 方案1&#xff1a;在Build Phases --> Link…

初识Python语言-课堂练习【pyhton123题库】

初识Python语言-课堂练习【pyhton123题库】 一、单项选择题 1、Guido van Rossum正式对外发布Python版本的年份是&#xff1a; A 2008B 1998C 1991D 2002 【答案】C 【解析】暂无解析2、下面不是Python语言特点的是&#xff1a;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪…

[抽象]工厂模式([Abstract] Factory)——创建型模式

[抽象]工厂模式——创建型模式 什么是抽象工厂&#xff1f; 抽象工厂模式是一种创建型设计模式&#xff0c;让你能够保证在客户端程序中创建一系列有依赖的对象组时&#xff0c;无需关心这些对象的类型。 具体来说&#xff1a; 对象的创建与使用分离&#xff1a; 抽象工厂模…

多线程(线程池)

线程池 池的概念意味着可以复用, 减少创建, 销毁线程的消耗 即事先把需要使用的线程创建好, 放到 “池” 中, 需要的时候从 “池” 里取, 用完再放回 池里取 这样全程只创建和销毁线程一次(之说是一次哦, 没说一次创建和销毁多少个)即可 标准库线程池的使用 public class Main…

《ElementPlus 与 ElementUI 差异集合》el-form-item CSS 属性 display 有变化

差异 element-ui el-form 中&#xff0c;属性display: flex; 导致元素在一排&#xff1b;element-plus el-form 中&#xff0c;属性display: block; 元素按照自己的属性排列&#xff1b; /* element ui */ display: block;/*element plus */ display: flex;如图所示 解决方案…

NacosConfig

NacosConfig是一个重要的服务配置中心&#xff0c;它在微服务架构中起到了关键的作用。以下是NacosConfig的主要作用&#xff1a; 集中管理配置&#xff1a;NacosConfig提供了用于存储配置和其他元数据的key/value存储功能&#xff0c;使得开发者可以在Nacos Server上集中管理…

深度学习训练GPU显卡选型攻略

‍‍&#x1f3e1;博客主页&#xff1a; virobotics(仪酷智能)&#xff1a;LabVIEW深度学习、人工智能博主 &#x1f4d1;上期文章&#xff1a;『仪酷LabVIEW OD实战(5)——Object DetectionTensorRT工具包快速实现yolo目标检测』 &#x1f37b;本文由virobotics(仪酷智能)原创…

3.环境对象this、this指向总结(待完成还有节流防抖待完成)、回调函数、事件

环境对象this 环境对象本质上是一个关键字 this this所在的代码区域不同&#xff0c;代表的含义不同 全局作用域中的this 全局作用域中this代表window对象 局部作用域中的this 在局部作用域中(函数中)this代表window对象 函数直接调用的时候简写了&#xff0c;函数完整写法…

打卡学习kubernetes——了解k8s基本概念

目录 1 Container 2 Pod 3 Node 4 Namespace 5 Service 6 Label 7 Annotations 8 Volume 1 Container Container(容器)是一种便携式、轻量级的操作系统级虚拟化技术。它使用namespace隔离不同的软件运行环境&#xff0c;并通过镜像自包含软件的运行环境&#xff0c;从而…

LLM预备知识、工具篇——LLM+LangChain+web UI的架构解析

目录 【常见名词】一、LLM的低资源模型微调二、向量数据库1、Milvus(v2.1.4)&#xff1a;云原生自托管向量数据库&#xff08;Ubuntu下&#xff09;1&#xff09;安装&#xff08;Docker Compose方式&#xff09;&#xff1a;2&#xff09;管理工具&#xff08;仅支持Milvus 2.…

Cloudflare的Automaitc HTTPS Rewrites是什么意思?

相关配置如下图所示&#xff1a; Automaitc HTTPS Rewrites的意思如下&#xff1a; Cloudflare的Automatic HTTPS Rewrites是一项功能&#xff0c;旨在帮助网站在使用HTTPS&#xff08;安全套接字层&#xff09;加密连接时更好地处理页面上的混合内容。HTTPS Rewrites自动修…