红黑瓷砖(BFS和DFS)

在这里插入图片描述

9 6
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
45

BFS

import java.util.Deque;
import java.util.LinkedList;
import java.util.Scanner;

public class Main {
	//. 黑色
	//# 红色
	//@ 黑色开始
	static final int N = 11;
	static int n,m,ans = 1;	
	static char[][] g = new char[N][N];
	static boolean[][] vis = new boolean[N][N];
	
	public static void bfs(int[] start) {
		Deque<int[]> dq = new LinkedList<>();
		dq.addLast(start);
		vis[start[0]][start[1]] = true;//@记录一次 ans初始值为1

		int[] dx = new int[] {1,-1,0,0};
		int[] dy = new int[] {0,0,1,-1};
		
		while(!dq.isEmpty()) {
			int[] t = dq.pollFirst();
			for(int i=0;i<4;i++) {
				int x = t[0]+dx[i];
				int y = t[1]+dy[i];
				if(x<0||x>n-1||y<0||y>m-1)
					continue;
				if(g[x][y] == '#')
					continue;
				if(vis[x][y])//如果访问过则continue
					continue;
				else {//没有访问过要标记为访问过之后 ans++ 然后入队列
					vis[x][y] = true;
					ans++;
					dq.addLast(new int[] {x,y});					
				}
			}
		}
	}
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();
		m = sc.nextInt();
		sc.nextLine();
		
		g = new char[n][m];
		for(int i=0;i<n;i++)
			g[i] = sc.nextLine().toCharArray();
		
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				if(g[i][j] == '@') {
					bfs(new int[] {i,j});
					System.out.println(ans);
					return ;
				}
			}
		}
	}
}

DFS

import java.util.Scanner;
public class Main {
	//. 黑色
	//# 红色
	//@ 黑色开始
	static final int N = 11;
	static int n,m,ans = 1;	
	static char[][] g = new char[N][N];
	static boolean[][] vis = new boolean[N][N];
	static int[] dx = new int[] {1,-1,0,0};
	static int[] dy = new int[] {0,0,1,-1};
	
	public static void dfs(int x1,int y1) {	
			for(int i=0;i<4;i++) {
				int x2 = x1+dx[i];
				int y2 = y1+dy[i];
				if(x2<0||x2>n-1||y2<0||y2>m-1)
					continue;
				if(g[x2][y2] == '#')
					continue;
				if(vis[x2][y2])
					continue;
				else {
					vis[x2][y2] = true;
					ans++;
					dfs(x2,y2);
				}
			}
		}
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();
		m = sc.nextInt();
		sc.nextLine();
		
		g = new char[n][m];
		for(int i=0;i<n;i++)
			g[i] = sc.nextLine().toCharArray();
		
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				if(g[i][j] == '@') {
					vis[i][j] = true;//@标记一次 ans初始为1
					dfs(i,j);
					System.out.println(ans);
					return ;
				}
			}
		}
	}
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

传统文字检测方法+代码实现

文章目录 前言传统文字检测方法1、基于最大稳定极值区域&#xff08;MSER&#xff09;的文字检测1.1 MSER&#xff08;MSER-Maximally Stable Extremal Regions&#xff09;基本原理代码实现——使用Opencv中的cv2.MSER_create()接口 2、基于笔画宽度变换&#xff08;Stroke Wi…

【示例】MySQL-SQL语句优化

前言 本文主要讲述不同SQL语句的优化策略。 SQL | DML语句 insert语句 插入数据的时候&#xff0c;改为批量插入 插入数据的时候&#xff0c;按照主键顺序插入 大批量插入数据的时候&#xff08;百万&#xff09;&#xff0c;用load指令&#xff0c;从本地文件载入&#x…

基于深度学习的人脸表情识别系统(PyQT+代码+训练数据集)

基于深度学习的人脸表情识别系统&#xff08;PyQT代码训练数据集&#xff09; 前言一、数据集1.1 数据集介绍1.2 数据预处理 二、模型搭建三、训练与测试3.1 模型训练3.2 模型测试 四、PyQt界面实现 前言 本项目是基于mini_Xception深度学习网络模型的人脸表情识别系统&#x…

关于nvm node.js的按照

说明&#xff1a;部分但不全面的记录 因为过程中没有截图&#xff0c;仅用于自己的学习与总结 过程中借鉴的优秀博客 可以参考 1,npm install 或者npm init vuelatest报错 2&#xff0c;了解后 发现是nvm使用的版本较低&#xff0c;于是涉及nvm卸载 重新下载最新版本的nvm 2…

4月12日重新安排行程

332.重新安排行程 332. 重新安排行程 - 力扣&#xff08;LeetCode&#xff09; 给你一份航线列表 tickets &#xff0c;其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票都属于一个从 JFK&#xff08;肯尼迪国际机…

Linux网络 基础概念

目录 背景知识 互联网的发展 局域网和广域网 网络拓扑 网络协议栈 协议的概念 网络协议的分层 网络与操作系统的联系 网络传输的基本流程 IP地址和MAC地址 以太网通信 数据包的封装和分用 跨网段传输 背景知识 互联网的发展 计算机网络是计算机技术和通信技术相…

循环新蓝海,“新”从“旧”中来

浙江安吉&#xff0c;是“两山”理念——“绿水青山就是金山银山”的发源地&#xff0c;也是众多循环经济和绿色产业的根据地。这里汇集了大批已上市和待上市的相关公司的总部&#xff0c;年初刚递表港交所的闪回科技&#xff0c;就是其中之一。 主营二手手机回收和销售的闪回…

卫星图像10个开源数据集资源汇总

文章目录 1、UC Merced Land-Use 2、Indian Pines 3、KSC 4、Washington DC 5、BigEarthNet 6、水体卫星图像的图像 7、城市航拍图像分割数据集 8、游泳池和汽车卫星图像检测 9、人工月球景观数据集 10、马萨诸塞州道路数据集 1、UC Merced Land-Use 数据集下载地址&am…

一文看懂交易主机托管!(此篇足矣)

什么是主机托管&#xff1f; 主机托管的类型&#xff1f; 如何开通主机托管&#xff1f; 主机托管的费用? 日常大家关心最多的就是这几个问题&#xff01;小编今天我们全面一次型解答&#xff01;帮助我们跟多了解&#xff01;建议收藏&#xff0c;避免下次找不到了哦&#x…

VulnHub靶机-easy_cloudantivirus 打靶

easy_cloudantivirus 靶机 目录 easy_cloudantivirus 靶机一、导入虚拟机配置二、攻击方式主机发现端口扫描web渗透-SQL注入命令注入反弹shellssh爆破提权 一、导入虚拟机配置 靶机地址&#xff1a; https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453/下载完成&am…

DOTS Instancing合批:如何针对单个渲染实体修改材质参数

最近在做DOTS的教程,由于DOTS(版本1.0.16)目前不支持角色的骨骼动画&#xff0c;我们是将角色的所有动画数据Baker到一个纹理里面&#xff0c;通过修改材质中的参数AnimBegin,AnimEnd来决定动画播放的起点和终点&#xff0c;材质参数AnimTime记录当前过去的动画时间。但是在做大…

【Super数据结构】二叉搜索树与二叉树的非递归遍历(含前/中/后序)

&#x1f3e0;关于此专栏&#xff1a;Super数据结构专栏将使用C/C语言介绍顺序表、链表、栈、队列等数据结构&#xff0c;每篇博文会使用尽可能多的代码片段图片的方式。 &#x1f6aa;归属专栏&#xff1a;Super数据结构 &#x1f3af;每日努力一点点&#xff0c;技术累计看得…

洛谷P1209 [USACO1.3] 修理牛棚 Barn Repair

#先看题目 题目描述 在一个月黑风高的暴风雨夜&#xff0c;Farmer John 的牛棚的屋顶、门被吹飞了 好在许多牛正在度假&#xff0c;所以牛棚没有住满。 牛棚一个紧挨着另一个被排成一行&#xff0c;牛就住在里面过夜。有些牛棚里有牛&#xff0c;有些没有。 所有的牛棚有相同…

策略为王股票软件源代码-----如何修改为自己软件06

本主播的下载栏目提供了数据&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c; 策略为王股票软件如何导入历史数据&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;

Okhttp全链路监控

目标&#xff1a; 1&#xff09;.监控网络请求的各个阶段 2&#xff09;获取每一个阶段的耗时和性能&#xff0c;用于性能分析。包括dns解析&#xff0c;socket连接时间&#xff0c;tls连接时间&#xff0c;请求发送时间&#xff0c;服务器接口处理时间&#xff0c;应答传输时…

C++设计模式:享元模式(十一)

1、定义与动机 概述&#xff1a;享元模式和单例模式一样&#xff0c;都是为了解决程序的性能问题。面向对象很好地解决了"抽象"的问题&#xff0c;但是必不可免得要付出一定的代价。对于通常情况来讲&#xff0c;面向对象的成本大豆可以忽略不计。但是某些情况&#…

程序“猿”自动化脚本(一)

1.剪贴板管理器&#x1f4cb; 您是否曾经发现自己在处理多个文本片段时忘记了复制的内容&#xff1f;有没有想过有一个工具可以跟踪您一天内复制的所有内容&#xff1f; 该自动化脚本会监视您复制的所有内容&#xff0c;将每个复制的文本无缝存储在时尚的图形界面中&#xff0c…

Salient Object Detection 探索经历

概述 显著性目标检测也被称为显著性检测&#xff0c;旨在通过模拟人类视觉感知系统来检测自然场景图像中最显著的目标和区域。虽然&#xff0c;显著性目标检测听名字是一个检测任务&#xff0c;但是实际上是一个图像分割任务&#xff0c;即一个像素级分类任务&#xff0c;是一…

【数组】5螺旋矩阵

这里写自定义目录标题 一、题目二、解题精髓-循环不变量三、代码 一、题目 给定⼀个正整数 n&#xff0c;⽣成⼀个包含 1 到 n^2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的正⽅形矩阵。 示例: 输⼊: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 二、解题精髓…

java包目录命名

包目录命名 config controller exception model common entity enums reponse request repository security service util