问题描述

4 5

s####

....#

#####

#...g

解题思路

tips生成x,y坐标轴的两个队列,根据队列的特性进行广度搜索

参考代码

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;public class Main {//访问节点的x,y坐标static Queue<Integer> x = new LinkedList<Integer>();static Queue<Integer> y = new LinkedList<Integer>();static char[][] map;//输入样例的地图static boolean[][] check;//同步地图的访问状态//坐标轴移动数组static int[] dx = { 1, -1, 0, 0};static int[] dy = { 0, 0, -1, 1};public static void main(String[] args) {Scanner sr = new Scanner(System.in);int n = sr.nextInt();int m = sr.nextInt();map = new char[n][m];//原地图check = new boolean[n][m];//访问状态矩阵for (int i = 0; i < map.length; i++) {String s = sr.next();map[i] = s.toCharArray();//创建地图同时获取s的位置if(s.contains("s")){x.add(i);y.add(s.indexOf("s"));check[x.peek()][y.peek()] = true;}}if (bfs()) {System.out.println("YES");}else {System.out.println("NO");}
}
private static boolean bfs() {// TODO Auto-generated method stub//广度搜索条件:x,y队列还有元素while (!x.isEmpty()) {//取出队列中的坐标int tx = x.poll();int ty = y.poll();//根据移动方向,生成新的坐标for (int i = 0; i < dx.length; i++) {int nx = tx + dx[i];int ny = ty + dy[i];//不越界的情况下,判定新坐标访问的位置不是#,并且未被访问过if (nx >= 0 && ny >= 0 && nx < map.length && ny < map[0].length && map[nx][ny] != '#' && !check[nx][ny]) {//将新的陆地坐标加入队列x.add(nx);y.add(ny);check[nx][ny] = true;//将新的陆地坐标标记访问//访问到g返回YESif (map[nx][ny] == 'g') {return true;}}}}return false;
}
}

蓝桥杯 BFS 高桥买酒相关推荐

  1. P3951 [NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目

    [NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目 题目背景 NOIP2017 提高组 D1T1 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每 ...

  2. 全球变暖详细题解(蓝桥杯bfs)

    题目描述 全球变暖 你有一张某海域 N×N 像素的照片,"."表示海洋."#"表示陆地,如下所示: - .##- .##- -##. -####. -###. ...

  3. 蓝桥杯泊松分酒java_【蓝桥杯】泊松分酒

    题目: 泊松是法国数学家.物理学家和力学家.他一生致力科学事业,成果颇多.有许多著名的公式定理以他的名字命名,比如概率论中著名的泊松分布. 有一次闲暇时,他提出过一个有趣的问题,后称为:"泊 ...

  4. 蓝桥分酒java_[蓝桥杯][java]海盗分酒

    /*  * 有一群海盗(不多于20人),在船上比拼酒量.过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了.再打开一瓶酒平分,又有倒下的,再次重复......   * 直到开了第4瓶酒,坐着的 ...

  5. 蓝桥杯第四届初赛-买不到的数目-数论

    题目描述 小明开了一家糖果店.他别出心裁:把水果糖包成4颗一包和7颗一包的两种.糖果不能拆包卖. 小朋友来买糖的时候,他就用这两种包装来组合.当然有些糖果数目是无法组合出来的,比如要买 10 颗糖. ...

  6. 【算法提高—蓝桥杯】阮小二买彩票

    [Description]题目描述 在同学们的帮助下,阮小二是变的越来越懒了,连算账都不愿意自己亲自动手了,每天的工作就是坐在电脑前看自己的银行账户的钱是否有变多.可是一段时间观察下来,阮小二发现自己 ...

  7. 蓝桥杯 BFS 迷宫寻宝

    问题描述 Problem Description 洪尼玛今天准备去寻宝,在一个n*n (n行, n列)的迷宫中,存在着一个入口.一些墙壁以及一个宝藏.由于迷宫是四连通的,即在迷宫中的一个位置,只能走到 ...

  8. 蓝桥杯:幼儿园买玩具

    蒜厂幼儿园有 n 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买m个玩具.已知玩具商店一共卖 k种玩具,编号为 1,2,3,...k,你让每个 ...

  9. 洛谷——小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目

    题目背景 NOIP2017 提高组 D1T1 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现 ...

最新文章

  1. java jdk 1.8 安装_下载、安装、配置 java jdk1.8
  2. 归纳整理--第4篇--常用软件
  3. J - 青蛙的约会(扩展欧几里得)
  4. RTL8201网络芯片讲解
  5. LeetCode2. 两数相加
  6. SpringAop通知
  7. 加工食品和饮料防腐剂行业调研报告 - 市场现状分析与发展前景预测
  8. clickhouse聚合函数之groupBitmap
  9. C#中string[]数组和liststring泛型的相互转换 【转】
  10. console.log也能插图!!!
  11. unity blend混合
  12. android设置透明主题后背景为黑色,android – 活动应该是透明的,但有黑色背景
  13. 机器学习诗词创作_通过机器学习创作音乐
  14. 视频转换成图像序列、图像转换成视频(代码)
  15. <_main__.类名 object at 0x0000000002A7CEB8>
  16. 鲁大师被win10识别为病毒?
  17. vue使用tradingview开发K线图相关问题
  18. 长沙高中计算机学校排名2015,长沙市所有高中学校排名,2021年长沙市重点高中分数线排名榜...
  19. Spring中报Could not resolve placeholder的解决方案
  20. 国内各大互联网公司Java工程师笔经面经

热门文章

  1. 同一个世界,同一个梦想
  2. stm32学习(二)STM32F103ZET6内部资源讲解
  3. Process#waitFor()阻塞问题
  4. 大连出入境管理处办理护照流程
  5. HUAWEI 机试题:充分发挥GPU算力
  6. C++小游戏——卡牌加减乘
  7. python卷积_直观地展示卷积积分,Python实例演示
  8. 反正切函数atan,atan2
  9. PHP strtotime 的 BUG
  10. 网站抓取攻击类型和如何保护