算法提高 我们的征途是星辰大海

时间限制:1.0s 内存限制:256.0MB

  最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成。

  共有四种方格:

  ‘.’ 代表空地,curiosity可以穿过它

  ‘#’ 代表障碍物,不可穿越,不可停留

  ‘S’ 代表curiosity的起始位置

  ‘T’ 代表curiosity的目的地

  NASA将会发送一系列的命令给curiosity,格式如下:“LRUD”分别代表向左,向右,向上,向下走一步。由于地球和火星之间最近时也有55000000km!所以我们必须提前判断这一系列的指令会让curiosity最终处在什么样的状态,请编程完成它。

输入格式

  第一行是一个整数T,代表有几个测试样例

  每个测试样例第一行是一个整数N(1<=N<=50))代表迷宫的大小(N*N)。随后的N行每行由N个字符串组成,代表迷宫。接下来的一行是一个整数Q,代表有多少次询问,接下来的Q行每行是一个仅由“LRUD”四个字母的组成的字符串,字符转长度小于1000.

输出格式

  对于每个询问输出单独的一行:

  “I get there!”:执行给出的命令后curiosity最终到达了终点。

  “I have no idea!”:执行给出的命令后curiosity未能到达终点。

  “I am dizzy!”:curiosity在执行命令的过程中撞到了障碍物。

  “I am out!”:代表curiosity在执行命令的过程中走出了迷宫的边界。

Sample Input

2

2

S.

#T

2

RD

DR

3

S.#

.#.

.T#

3

RL

DDD

DDRR

Sample Output

  I get there!

  I am dizzy!

  I have no idea!

  I am out!

  I get there!

  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. public class 我们的征途是星辰大海 {
  5. static int maxn = 50;
  6. static char[][] maze =new char[maxn][maxn];
  7. static int N,Q;
  8. public static void main(String[] args) throws NumberFormatException, IOException {
  9. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  10. String[] ans = {"I get there!","I have no idea!","I am dizzy!","I am out!"};
  11. int t = Integer.parseInt(br.readLine());
  12. int sx=0,sy=0,tx=0,ty=0;
  13. while(t>0)
  14. {
  15. N=Integer.parseInt(br.readLine());
  16. //System.out.println("n的值"+N);
  17. for(int i=0;i<N;i++)
  18. {
  19. char[] ch = br.readLine().toCharArray();
  20. for(int j =0;j<N;j++)
  21. {
  22. maze[i][j]=ch[j];
  23. //System.out.print(maze[i][j]);
  24. if (maze[i][j] == 'S') {sx = i; sy = j;}
  25. if (maze[i][j] == 'T') {tx = i; ty = j;}
  26. }
  27. }
  28. Q=Integer.parseInt(br.readLine());
  29. //System.out.println("q的值为"+Q);
  30. for(int i=0;i<Q;i++)
  31. {
  32. String op=br.readLine();
  33. int res=solve(op,sx,sy,tx,ty);
  34. System.out.println(ans[res]);
  35. }
  36. t--;
  37. }
  38. }
  39. private static int solve(String op, int sx, int sy, int tx, int ty) {
  40. char[] ch1 = op.toCharArray();
  41. if(sx==tx&&sy==ty)
  42. return 0;
  43. for( int i = 0;i < ch1.length; i++)
  44. {
  45. if(ch1[i] == 'L') sy -= 1;
  46. else if(ch1[i] == 'R') sy += 1;
  47. else if(ch1[i] == 'U') sx -= 1;
  48. else sx += 1;
  49. if( sx < 0 || sy < 0 || sx >= N || sy >= N)
  50. return 3;
  51. if( maze[sx][sy] == '#')
  52. return 2;
  53. if(sx == tx && sy == ty)
  54. return 0;
  55. }
  56. return 1;
  57. }
  58. }

Java实现 蓝桥杯VIP 算法提高 我们的征途是星辰大海的更多相关文章

  1. Java实现 蓝桥杯VIP 算法提高 研究兔子的土豪

    试题 算法提高 研究兔子的土豪 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 某天,HWD老师开始研究兔子,因为他是个土豪 ,所以他居然一下子买了一个可以容纳10^18代兔子的巨大 ...

  2. Java实现 蓝桥杯VIP 算法提高 3-2求存款

    算法提高 3-2求存款 时间限制:1.0s 内存限制:256.0MB 问题描述 见计算机程序设计基础(乔林)P50第5题. 接受两个数,一个是用户一年期定期存款金额,一个是按照百分比格式表示的利率,计 ...

  3. Java实现 蓝桥杯VIP 算法提高 3-3求圆面积表面积体积

    算法提高 3-3求圆面积表面积体积 时间限制:1.0s 内存限制:256.0MB 问题描述 接受用户输⼊的数值,输出以该值为半径的(1)圆面积,(2)球体表面积,(3)球体体积.pi 取值3.1415 ...

  4. Java实现 蓝桥杯VIP 算法提高 5-3日历

    算法提高 5-3日历 时间限制:1.0s 内存限制:256.0MB 问题描述 已知2007年1月1日为星期一.设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印.为 ...

  5. Java实现 蓝桥杯VIP 算法提高 11-2删除重复元素

    算法提高 11-2删除重复元素 时间限制:10.0s 内存限制:256.0MB 问题描述 为库设计新函数DelPack,删除输入字符串中所有的重复元素.不连续的重复元素也要删除. 要求写成函数,函数内 ...

  6. Java实现 蓝桥杯VIP 算法提高 P0401

    算法提高 P0401 时间限制:1.0s 内存限制:256.0MB 输入一个无符号整数x,输出x的二进制表示中1的个数. 输入: 76584 输出: 7 import java.util.Scanne ...

  7. Java实现 蓝桥杯VIP 算法提高 理财计划

    算法提高 理财计划 时间限制:1.0s 内存限制:256.0MB 问题描述 银行近期推出了一款新的理财计划"重复计息储蓄".储户只需在每个月月初存入固定金额的现金,银行就会在每个月 ...

  8. Java实现 蓝桥杯VIP 算法提高 解二元一次方程组

    算法提高 解二元一次方程组 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个二元一次方程组,形如: a * x + b * y = c; d * x + e * y = f; x,y代 ...

  9. Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2

    算法提高 陶陶摘苹果2 时间限制:1.0s 内存限制:256.0MB 问题描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出n个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳, ...

随机推荐

  1. C语言进阶_变量属性

    人们总说时间会改变一些,但实际上这一切还得你自己来. 一.概念详解 变量:计算机语言中储存计算结果,其值可以被修改.通过变量名来访问计算机中一段连续的内存空间. 属性:区别于同类事物的特征. C语言中 ...

  2. C# 委托delegate的基本用法

    委托:就是一个方法的类型,下面3个调用情况来详细熟悉一下: 1.调用组合委托 //委托:就是一个方法的类型 public delegate int TestDelegateStr(); public ...

  3. HDU 2010 (水)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2010 题目大意:给你段连续的数,把满足条件(数字 每一位的3 == 该数字)的数输出,就是水仙花数 解 ...

  4. extract变量覆盖

    0x01 extract变量覆盖 <?php $flag='xxx'; extract($_GET); if(isset($shiyan)) { $content=trim(file_get_c ...

  5. layui编辑商品时,怎么使用下拉菜单显示商品默认分类的问题

    //加载商品默认的分类$.get('/admin/category/selec/' + {$simple.0.first_pid},function(msg){ $("#two_cate&q ...

  6. python--集合和文件基本操作

    集合 # 集合天生就能去重,集合也是无序的  集合也是{ }  但是空集合定义特殊s=set()  #空集合s2 = set('1234445566778')print(s2) s3 = {'1',' ...

  7. OpenCv 学习安装(一)

    1.opencv版本:opencv-3.4.2-vc14_vc15.exe2.设置环境变量path: E:\opencv\opencv\build\x64\vc14\bin3.用VS2015新建一个w ...

  8. 「雕爷学编程」Arduino动手做(27)——BMP280气压传感器

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

  9. 干货分享:如何使用Kubernetes的Ingress API

    您可以通过使用诸如Kong for Kubernetes的Ingress控制器(使用自定义资源定义并提供许多插件)来极大地扩展Ingress资源的功能. Kubernetes正在整个技术行业中得到采用 ...

  10. 【学习】Python os模块常用方法 记录

    记录一些工作中常用到的用法 os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件. os.walk(top, topdown=Ture, onerror=None, follow ...