蓝桥 扫雷 java,蓝桥杯 ADV-201 算法提高 我们的征途是星辰大海 | 码农网

这篇博客介绍了一个关于火星探测机器人Curiosity在二维迷宫中寻找路径的问题。文章提供了输入和输出格式,并展示了一个C++代码示例,该代码处理机器人根据给定指令在不同地形中移动的情况,包括遇到障碍、到达目的地、走出边界等不同场景。通过这个例子,读者可以理解如何进行简单的路径规划和状态判断。
摘要由CSDN通过智能技术生成

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

共有四种方格:

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

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

‘S’ 代表curiosity的起始位置

‘T’ 代表curiosity的目的地

输入格式

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

输出格式

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

“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!

#include

#include

using namespace std;

int main() {

int k;

cin >> k;

while (k--) {

int n, m, sx, sy, ex, ey;

char cc[100][100];

memset(cc, '0', sizeof(cc));

cin >> n;

for (int i = 1; i <= n; i++) {

for (int j = 1; j <= n; j++) {

scanf(" %c ", &cc[i][j]);

if (cc[i][j] == 'S') {

sx = i;

sy = j;

}

if (cc[i][j] == 'T') {

ex = i;

ey = j;

}

}

}

cin >> m;

while (m--) {

int nowx = sx, nowy = sy, flag = 0;

string s;

cin >> s;

for (int i = 0; i < s.length(); i++) {

if (s[i] == 'R') nowy++;

if (s[i] == 'L') nowy--;

if (s[i] == 'U') nowx--;

if (s[i] == 'D') nowx++;

if (cc[nowx][nowy] == '#') {

flag = 1;

cout << "I am dizzy!\n";

break;

} else if (cc[nowx][nowy] == '0') {

flag = 1;

cout << "I am out!\n";

break;

} else if (cc[nowx][nowy] == 'T') {

flag = 1;

cout << "I get there!\n";

break;

}

}

if (flag == 0)

cout << "I have no idea!\n";

}

}

return 0;

}

❤❤点击这里 -> 订阅PAT、蓝桥杯、GPLT天梯赛、LeetCode题解离线版❤❤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值