蓝桥杯-我们的征途是星辰大海

简介: 蓝桥杯-我们的征途是星辰大海

Problem Description:


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

共有四种方格:

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

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

‘S’  代表curiosity的起始位置

‘T’  代表curiosity的目的地

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


Input:


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

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


Output:


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

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


解题思路:


这道题类似与DFS和BFS,但是实际上就是模拟,我们只需要按照题意去走,寻找迷宫里的每个点是什么,最终按条件输出即可。(OJ上的样例输入有问题,需要自己输入样例或许才可以)


程序代码:


#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,m,sx,sy,ex,ey;
        char a[100][100];
        //memset(a,'0',sizeof(a));
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                cin>>a[i][j];
                if(a[i][j]=='S')
                {
                    sx=i;
                    sy=j;
                }
                if(a[i][j]=='T')
                {
                    ex=i;
                    ey=j;
                }
            }
        }
        cin>>m;
        while(m--)
        {
            int tx=sx,ty=sy,flag=0;
            string s;
            cin>>s;
            for(int i=0;i<s.length();i++)
            {
                if(s[i]=='R')
                    ty++;
                if(s[i]=='L')
                    ty--;
                if(s[i]=='U')
                    tx--;
                if(s[i]=='D')
                    tx++;
                if(a[tx][ty]=='#')
                {
                    flag=1;
                    cout<<"I am dizzy!"<<endl;
                    break;
                }
                else if(tx<1||tx>n||ty<1||ty>n)
                {
                    flag=1;
                    cout<<"I am out!"<<endl;
                    break;
                }
                else if(tx==ex&&ty==ey)
                {
                    flag=1;
                    cout<<"I get there!"<<endl;
                    break;
                }
            }
            if(flag==0)
                cout<<"I have no idea!"<<endl;
        }
    }
    return 0;
}


相关文章
|
4月前
|
存储 安全 计算机视觉
参加第十二届中国软件杯比赛感想以及经验
今年我作为参赛选手参加了中国软件杯南京线下赛,参加了总决赛答辩环节,下面总结一些参加比赛的经验以及感受
|
安全 Python
让代码创造童话,共建快乐世界:六一儿童节特辑
让代码创造童话,共建快乐世界:六一儿童节特辑
|
机器学习/深度学习 人工智能 自然语言处理
别急着给中国版ChatGPT唱赞歌:“追风者”无缘“星辰大海”
“追风者”注定只会在风中盘旋,被风势裹挟。
143 0
别急着给中国版ChatGPT唱赞歌:“追风者”无缘“星辰大海”
|
算法
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)热身赛 B.这是一道大水题(树状数组)
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)热身赛 B.这是一道大水题(树状数组)
150 0
2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)热身赛 B.这是一道大水题(树状数组)
|
存储
身家过亿的帝都富豪来参加1024节专属盛典,小码农献上单链表一篇来庆祝盛典
身家过亿的帝都富豪来参加1024节专属盛典,小码农献上单链表一篇来庆祝盛典
85 0
身家过亿的帝都富豪来参加1024节专属盛典,小码农献上单链表一篇来庆祝盛典
|
消息中间件 存储 缓存
【日拱一卒进击大厂系列】三个月斩获阿里offer,我做对了哪些事情
阿里巴巴这四个字对于一个技术人来说,是一个朝圣对地方,是一个制造梦想的地方。看过无数次马老师对演讲视频以及纪录片,在惊叹于马老师的商业眼光的同时也萌生了去看看阿里巴巴到底是一家什么样的公司的愿望。本文主要阐述了作者如何在繁忙的工作中通过三个月的准备拿到阿里offer的过程,希望对想进入阿里巴巴的同学有所裨益。面试准备经历适用于将要走出校园寻找人生第一份Java开发工作的应届生,也适用于工作好几年的老司机。
【日拱一卒进击大厂系列】三个月斩获阿里offer,我做对了哪些事情
|
Java 物联网 C#
2019年的第一场雪来的既猛又烈,突然想分享点东西
清晨起床,震惊了,窗外一片雪白,大雪纷飞,我承认我词穷了,说再多话也描述不了此刻的大好心情。所以,话不多说,先上一张朋友圈的图吧! 趁着这么“好的”天气以及这么好的心情突然想写点东西记录一下自己的2018这一年以及2019年的这一天以及对.NET Core的看法。
1950 0
纪念金庸。创造了整整一个江湖。一个江湖的时代落幕了。。。
纪念金庸。创造了整整一个江湖。一个江湖的时代落幕了。。。 金庸武侠小说中的绝美句子,至今都让人回味无穷—— 情不知所起,一往情深;恨不知所终,一笑而泯。 ——金庸《笑傲江湖》 红颜弹指老,刹那芳华,与其天涯思君,恋恋不舍,莫若相忘于江湖。
1535 0
|
算法 数据中心 索引
阿里云梁楹:这样的青春,别样的精彩
人的青春应该怎样度过?相信一千个人心中,有一千个答案。 我是郭嘉梁,花名梁楹,在不少人眼中,我是一个来自北方的大男孩,一个自带“古典气质的少年”,其实我是一个喜欢晋级打怪,热爱挑战自我的阿里云工程师。