标题:穿越雷区X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短?已知的地图是一个方阵,上面用字母标出了A,B区,其它区都标了正号或负号分别表示正负能量辐射区。例如:A + - + -- + - - +- + + + -+ - + - +B + - + -坦克车只能水平或垂直方向上移动到相邻的区。数据格式要求:输入第一行是一个整数n,表示方阵的大小, 4<=n<100接下来是n行,每行有n个数据,可能是A,B,+,-中的某一个,中间用空格分开。A,B都只出现一次。要求输出一个整数,表示坦克从A区到B区的最少移动步数。如果没有方案,则输出-1例如:用户输入:5A + - + -- + - - +- + + + -+ - + - +B + - + -则程序应该输出:10资源约定:峰值内存消耗(含虚拟机) < 512MCPU消耗  < 2000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。注意:主类的名字必须是:Main,否则按无效代码处理。
package com.sihai.liujie;import java.util.Scanner;public class _4 {static char map[][] = new char[110][110];  static int vis[][] = new int[110][110];int n;static int sum=1000000;public static void main(String[] args) {Scanner s = new Scanner(System.in);int n = s.nextInt();int x = 0,y = 0;  for(int i=0;i<n;i++)  {  for(int j=0;j<n;j++)  {  map[i][j] = s.next().charAt(0);  if(map[i][j]=='A')  {  x=i;y=j;  }  }  }  dfs(0,x,y);  if(sum==1000000)  System.out.println(-1);else  System.out.println(sum);}public static void dfs(int cur,int x,int y)  {  if(cur>=sum)  return;if(map[x][y]=='B')  {  sum=cur;  return;  }  vis[x][y]=1;  if((x-1)>=0&&vis[x-1][y]==0&&(map[x][y]!=map[x-1][y]))  {  dfs(cur+1,x-1,y);  }  if((y-1)>=0&&vis[x][y-1]==0&&(map[x][y]!=map[x][y-1]))  {  dfs(cur+1,x,y-1);  }  if((x+1)>=0&&vis[x+1][y]==0&&(map[x][y]!=map[x+1][y]))  {  dfs(cur+1,x+1,y);  }  if((y+1)>=0&&vis[x][y+1]==0&&(map[x][y]!=map[x][y+1]))  {  dfs(cur+1,x,y+1);  }  vis[x][y]=0;  }
}

蓝桥杯java第六届决赛第四题--穿越雷区相关推荐

  1. 蓝桥杯java第六届决赛第三题--显示二叉树

    标题:显示二叉树排序二叉树的特征是:某个节点的左子树的所有节点值都不大于本节点值.某个节点的右子树的所有节点值都不小于本节点值.为了能形象地观察二叉树的建立过程,小明写了一段程序来显示出二叉树的结构来 ...

  2. 蓝桥杯java第七届决赛第四题--路径之谜

    路径之谜小明冒充X星球的骑士,进入了一个奇怪的城堡.城堡里边什么都没有,只有方形石头铺成的地面.假设城堡地面是 n x n 个方格.[如图1.png]所示.按习俗,骑士要从西北角走到东南角.可以横向或 ...

  3. 蓝桥杯java第六届决赛第二题--五星填数

    标题:五星填数如[图1.png]的五星图案节点填上数字:1~12,除去7和11.要求每条直线上数字和相等.如图就是恰当的填法.请你利用计算机搜索所有可能的填法有多少种.注意:旋转或镜像后相同的算同一种 ...

  4. 蓝桥杯java第六届决赛第一题--分机号

    标题:分机号X老板脾气古怪,他们公司的电话分机号都是3位数,老板规定,所有号码必须是降序排列,且不能有重复的数位.比如:751,520,321 都满足要求,而,766,918,201 就不符合要求.现 ...

  5. 蓝桥杯java第七届决赛第三题--打靶

    打靶小明参加X星球的打靶比赛.比赛使用电子感应计分系统.其中有一局,小明得了96分.这局小明共打了6发子弹,没有脱靶.但望远镜看过去,只有3个弹孔.显然,有些子弹准确地穿过了前边的弹孔.不同环数得分是 ...

  6. 蓝桥杯java第七届决赛第一题--愤怒小鸟

    愤怒小鸟X星球愤怒的小鸟喜欢撞火车!一根平直的铁轨上两火车间相距 1000 米两火车 (不妨称A和B) 以时速 10米/秒 相对行驶.愤怒的小鸟从A车出发,时速50米/秒,撞向B车,然后返回去撞A车, ...

  7. 蓝桥杯java B组历年省赛真题汇总及题目详解

    蓝桥杯java B组历年省赛真题汇总及题目详解 2019年第十届蓝桥杯省赛真题详解 2018年第九届蓝桥杯省赛真题详解 2017年第八届蓝桥杯省赛真题详解 2016年第七届蓝桥杯省赛真题详解 2015 ...

  8. 蓝桥杯Java大学C组近三年真题解析(三)——暴力、模拟题

    目录 第十届 求和 题目 题解 代码 矩形切割 题目 题解一 代码 代码 代码 题解二 代码 不同子串 题目 题解 代码 质数 题目 题解 代码 最大降雨量 题目 题解 代码 旋转 题目 题解 代码 ...

  9. 蓝桥杯Java大学C组近三年真题解析(二)——暴力、模拟题

    目录 第十一届 约数个数 题目 题解 代码 代码 寻找 2020 题目 题解 代码 代码 跑步锻炼 题目 题解 代码 代码 代码 灵活使用Excel 平面分割 题目 题解 代码 代码 七段码 题目 ​ ...

最新文章

  1. 【BZOJ】2120: 数颜色
  2. Javascript函数执行、new机制以及继承
  3. html sql注入_Web安全-SQL注入(sqli-lab)
  4. [转] C#异步操作
  5. 大数据分析技术有哪些应用步骤
  6. linux 内核互斥体,内核并发控制---互斥量
  7. 用c语言的输入,用C语言输入的“%p”是什么意思?
  8. 面对网络灾难风暴Fortinet安立方打造完美方舟
  9. JS基础——两张图来回切换
  10. web如何加入视频?video
  11. Dazdata BI之PDF魔幻输出
  12. java project、maven project项目打成可运行的jar包
  13. Jquery考试面试题(一)
  14. Freebsd 8.4 Vmware 安装及软件配置
  15. 与传统电商相比,微商城存在哪些优势?
  16. 计算机视觉大型攻略 —— 特征与匹配(3)特征描述符
  17. 邮箱如何发邮件,邮箱如何清理发信,VIP邮箱靓号是什么?
  18. 汽车维修管理系统C语言代码,大智慧汽车维修管理系统
  19. 算法实践:武士风度的牛
  20. Java 计算字母个数_统计字符串中每个字母的个数

热门文章

  1. [导入]DotNet软件开发框架
  2. python —— 装饰器
  3. 高斯过程回归(GPR)—— 数学推导
  4. 【Flask】自定义转换器
  5. 【Flask】Jinja2之模板中使用url_for
  6. SMMU学习这一篇就够了
  7. Linux Kernel5.10的核间通信(SGI中断)的本质
  8. 思想解读:optee中的多线程处理
  9. [GXYCTF2019]CommonModulusAttack
  10. vector邻接表建图+dijkstra模板