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

时间限制: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!

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; public class 我们的征途是星辰大海 {
static int maxn = 50;
static char[][] maze =new char[maxn][maxn];
static int N,Q;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] ans = {"I get there!","I have no idea!","I am dizzy!","I am out!"};
int t = Integer.parseInt(br.readLine());
int sx=0,sy=0,tx=0,ty=0;
while(t>0)
{
N=Integer.parseInt(br.readLine());
//System.out.println("n的值"+N);
for(int i=0;i<N;i++)
{
char[] ch = br.readLine().toCharArray();
for(int j =0;j<N;j++)
{
maze[i][j]=ch[j];
//System.out.print(maze[i][j]);
if (maze[i][j] == 'S') {sx = i; sy = j;}
if (maze[i][j] == 'T') {tx = i; ty = j;}
}
}
Q=Integer.parseInt(br.readLine());
//System.out.println("q的值为"+Q);
for(int i=0;i<Q;i++)
{
String op=br.readLine();
int res=solve(op,sx,sy,tx,ty);
System.out.println(ans[res]);
}
t--;
}
}
private static int solve(String op, int sx, int sy, int tx, int ty) {
char[] ch1 = op.toCharArray();
if(sx==tx&&sy==ty)
return 0;
for( int i = 0;i < ch1.length; i++)
{
if(ch1[i] == 'L') sy -= 1;
else if(ch1[i] == 'R') sy += 1;
else if(ch1[i] == 'U') sx -= 1;
else sx += 1; if( sx < 0 || sy < 0 || sx >= N || sy >= N)
return 3;
if( maze[sx][sy] == '#')
return 2;
if(sx == tx && sy == ty)
return 0;
}
return 1;
} }

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. 设计模式之GOF23适配器模式

    结构型模式 核心作用:是从程序的结构上实现松耦合,从而可以扩大整体的 类结构,用来解决更大的问题 适配器模式adapter 实际生活中的例子:转换器 适配器的两种方式: 1,类适配器(继承) /**需 ...

  2. ASP.NET 开源导入导出库Magicodes.IE 完成Csv导入导出

    Magicodes.IE Csv导入导出 说明 本章主要说明如何使用Magicodes.IE.Csv进行Csv导入导出. 主要步骤 1.安装包Magicodes.IE.Csv Install-Pack ...

  3. JMeter-结合BeanShell生成MD5加密数据写入数据库

    前言 有部分数据直接插入数据库是不可以的,需要加密处理,例如密码都指定为加密后的数据字符串.今天我们来学习一下如何利用JMeter生成加密数据并写入MySQL数据库中.如何JMeter如何连接数据库, ...

  4. mybatis 插入数据返回ID

    hibernate中插入数据后会返回插入的数据的ID,mybatis要使用此功能需要在配置文件中显示声明两个属性即可:

  5. redis主从复制、主从延迟知几何

    本片章节主要从 redis 主从复制延迟相关知识及影响因素做简要论述. 1.配置:repl-disable-tcp-nodelay 也即是TCP 的 TCP_NODELAY 属性,决定数据的发送时机. ...

  6. Vue中import用法

    1. 引入第三方插件 第三方常用插件参考https://blog.csdn.net/vbirdbest/article/details/86527886 2. 导入 css 文件 import 'iv ...

  7. Python-MD5加密算法接口测试

    前言 在之前的Python系列的随笔中,我跟小伙伴们讲述了Python-AES加密算法接口测试和Python-SHA256加密算法接口测试,今天我们来学习一下登录密码是md5加密的情况下,该如何使用p ...

  8. ql的python学习之路-day13

    前言:本节主要学习模块 一.模块的定义 模块:本质是.py结尾的python文件(文件名:test.py,对应的模块是:test),用来从逻辑上组织python代码(变量.函数.类.逻辑,本质是实现一 ...

  9. Python一切皆是对象,但这和内存管理有什么关系?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python的第15篇文章,我们来聊聊Python中内存管理机制,以及循环引用的问题. Python的内存管理机制 对于工程师而言,内 ...

  10. linux_centos7_时间更新

    EDT:美国时间            CST:中国北京时间 方法一.使用ntpdate从时间服务器更新时间: 1.下载ntpdate组件 yum install -y ntp 2.完成后直接测试 [ ...