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

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

思路:

用map数组存每次输入的地图,每输入一行询问命令,便进行判断,这题没什么坑点,

通过移动起始坐标x,y改变坐标,对命令进行判断进行坐标+ -

C++示例代码:


#include<iostream>
#include<cstdio>
using namespace std;
int T;//T个测试样例
int N;//迷宫大小(N*N)
int Q;//Q次询问
string map[51];
void move(int startx,int starty,int endx,int endy,string command){for(int m=0;m<command.size();m++){if(command[m]=='L'){startx--;}else if(command[m]=='R'){startx++;}else if(command[m]=='U'){starty--; }else{starty++;}if(startx<0||starty<0||startx>=N||starty>=N){//越边界 cout<<"I am out!";return ;}if(map[starty][startx]=='#'){//碰到障碍物 cout<<"I am dizzy!";return;}if(startx==endx&&endy==starty){//到达终点 cout<<"I get there!";return;}}cout<<"I have no idea!";    return;
}
int main(){cin>>T;for(int i=0;i<T;i++){cin>>N;int startx,starty,endx,endy;//起点、终点x、y坐标 for(int j=0;j<N;j++){cin>>map[j];//每行都找一下有没有S或T,有则将坐标给 startx,starty,endx,endyif(map[j].find('S')!=-1 ){startx=map[j].find('S');starty=j;}if(map[j].find('T')!=-1){endx=map[j].find('T');endy=j; }}cin>>Q;string dir[Q];for(int k=0;k<Q;k++){cin>>dir[k];//输入询问map命令 move(startx,starty,endx,endy,dir[k]);cout<<endl;}}return 0;
}

[蓝桥杯]测试题 E 算法提高 我们的征途是星辰大海 题解和C++示例代码相关推荐

  1. Java实现 蓝桥杯VIP 算法提高 我们的征途是星辰大海

    算法提高 我们的征途是星辰大海 时间限制:1.0s 内存限制:256.0MB 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,c ...

  2. 蓝桥杯 ADV-201 算法提高 我们的征途是星辰大海

    算法提高 我们的征途是星辰大海 时间限制:1.0s 内存限制:256.0MB 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,c ...

  3. 蓝桥杯--算法提高 我们的征途是星辰大海 (模拟)

    算法提高 我们的征途是星辰大海   时间限制:1.0s   内存限制:256.0MB 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表 ...

  4. 蓝桥杯题库 算法提高非vip部分(C++、Java)代码实现(251-280)

    文章目录 ADV-251 Petri Net Simulation cpp: java: ADV-252 Navigation cpp: ADV-256 The Sky is the Limit cp ...

  5. 蓝桥杯 ADV-201 算法提高 我们的征途是星辰大海

    最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,curiosity可以穿过它 '#' 代表障碍物,不可穿越,不可停留 'S' 代 ...

  6. 蓝桥杯 算法提高 我们的征途是星辰大海

    最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,curiosity可以穿过它 '#' 代表障碍物,不可穿越,不可停留 'S' 代 ...

  7. 【蓝桥杯练习】算法提高 贪吃的大嘴

    问题描述 给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个. 输入格式 输入的第一行包含两个整数n, m,分别表示物品的个数和背包能 ...

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

    最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,curiosity可以穿过它 '#' 代表障碍物,不可穿越,不可停留 'S' 代 ...

  9. 【预览】蓝桥杯竞赛python算法笔记 代码模板|吐血总结|蓝桥杯省赛国赛

    [预览]蓝桥杯竞赛python算法笔记 代码模板|吐血总结 完整版链接 文章目录 [预览]蓝桥杯竞赛python算法笔记 代码模板|吐血总结 1 二分算法求分界值 2 双指针算法 2.1 求最长的不包 ...

最新文章

  1. QIIME 2用户文档. 5粪菌移植分析练习Fecal microbiota transplant (FMT) study
  2. zabbix snmp trap 监控
  3. python函数内部返回的值_Python中函数的返回值示例浅析
  4. java 叉号关闭_求助 java 如何编写JFrame窗体右上角红色打叉关闭按钮的事件?
  5. 使用免费ssl证书在iis6 https的配置方法!
  6. 计算机abcd地址,IP地址ABCDE的分类说明
  7. Android超精准计步器开发-Dylan计步
  8. 修改Windows用户名后用户路径没有修改的解决方案
  9. 校园学生管理系统设想
  10. 利用html5实现的360度全景图浏览(带天地)
  11. actuator--基础--6.1--端点解析--health端点
  12. Web1.0时期进入Web3.0时代,即将跨入Web4.0时代
  13. “大众点评开发者平台”正式上线
  14. 操作系统笔记(王道)(持续更新中)
  15. echarts图表无数据无时,在页面显示暂无数据
  16. mysql的blob字段存储中文,输出乱码
  17. python web py入门(33)- 在HTML网页里嵌入JavaScript脚本
  18. caffe 人脸关键点检测_人脸关键点对齐
  19. AD18层次原理图绘制
  20. 因路径乱码使InstallShield Wizard安装包打开“出现1155错误,文件xxx.msi未找到“的解决方式

热门文章

  1. NBA球星管理系统 v1.0
  2. 购票系统c语言座位分配,超实用!买票的时候如何选座?
  3. python学习笔记(七):运算符和流程控制
  4. Linux 中的 nl 命令详解及C/C++代码实现(文件行数)
  5. 数组练习题-java
  6. 致敬司徒!avalon例子学习
  7. 计算机任务管理器不能打开,电脑任务管理器打不开详细解决方法 | 专业网吧维护...
  8. 国密算法的ekey的使用--简述
  9. 深度学习训练遇到的坑(一)
  10. 文秘与计算机的知识,18文秘02李荧 随着现代科学技术的发展,计算机已经