1021:机器人走迷宫(2017年中南大学研究生复试机试题)(代码片段)

tangyimin tangyimin     2023-03-10     268

关键词:

1021: 机器人走迷宫

时间限制: 1 Sec  内存限制: 128 MB
提交: 339  解决: 71
[提交] [状态] [讨论版] [命题人:外部导入]

题目描述

有一个愚蠢的机器人走进一个w*h的迷宫,迷宫里有空地和陷阱。他想要访问迷宫的每个方格,但是它很笨,只会按照指令的方向走。当机器人不能走的时候,也就是下一步会遇到陷阱、迷宫边界或者访问过的格子,它会向右转90度(顺时针旋转90度,不能访问已经访问过的方格,且在原地只转一次,移动后可获得又一次旋转机会)。请问这个机器人最多可以经过多少个方格。

例如:

5 5

R****

*****

*****

*****

*****

机器人可以经过25个格子,但是

2 3

**L

***

机器人只能经过3个格子。

输入

对于每组数据,第一行两个数w和h,表示迷宫的行和列(1<=w,h<=10)

接下来w行每行有h个字符用于描述这个迷宫。迷宫的‘.’表示空地,即为可以走的地方。‘*’表示陷阱,即为不能走的地方。迷宫中有一个英文字母,表示机器人的出发点,字母只有’U’,’D’,’L’,’R’四种。分别表示机器人的初始指令是向上,向下,向左,向右。

输出

对于每组数据,输出一个整数,即机器人一共经过多少个方格。

样例输入

2 3
U..
.*.
4 4
R...
.**.
.**.
....

样例输出

4
12

来源/分类

 
 1 #include<iostream>
 2 
 3 using namespace std;
 4 char map[15][15];
 5 int w, h;//U’,’D’,’L’,’R’
 6 bool isCanGo(int x, int y, char d)
 7     if (d == L)
 8         if (y - 1 >= 0 && map[x][y - 1] != *)
 9             return true;
10     
11     else if (d == R)
12         if (y + 1 < h && map[x][y + 1] != *)
13             return true;
14     
15     else if (d == U)
16         if (x - 1 >= 0 && map[x-1][y] != *)
17             return true;
18     
19     else if (d == D)
20         if (x + 1 < w && map[x+1][y] != *)
21             return true;
22     
23     return false;
24 
25 int main12313()
26     while (cin >> w >> h)
27         char d;
28         int posx, posy;
29         for (int i = 0; i < w; i++)
30             cin >> map[i];//这里的输入太坑了,没有空格,每行就是一个输入
31             // R****  *****,注意这里的输入
32             for (int j = 0; j < h; j++)
33                 //cin >> map[i][j];
34                 if (map[i][j] == U || map[i][j] == D || map[i][j] == L || map[i][j] == R)
35                     posx = i;
36                     posy = j;
37                     d = map[i][j];
38                 
39             
40         
41         int num = 1,time=1;
42         while (1)
43             if (isCanGo(posx, posy, d))//走一步,并刷新time的值,走过格子的加一
44                 time = 1;
45                 num += 1;
46                 map[posx][posy] = *;
47                 if (d == U)
48                     posx = posx - 1;
49                 
50                 else if (d == D)
51                     posx = posx + 1;
52                 
53                 else if (d == L)
54                     posy -= 1;
55                 
56                 else if (d == R)
57                     posy += 1;
58                 
59                 //cout << posx << " " << posy << endl;
60             
61             else if(time==1)//调整方向,time减一
62                 time--;
63                 if (d == U)
64                     d = R;
65                 
66                 else if (d == D)
67                     d = L;
68                 
69                 else if (d == L)
70                     d = U;
71                 
72                 else if (d == R)
73                     d = D;
74                 
75                 //cout << "convert!" << d << endl;
76             
77             else
78                 break;
79             
80         
81         cout << num << endl;
82     
83     return 0;
84 

 

机器人踢足球读后感100字

机器人踢足球读后感准确地说,这是一场虚拟足球大战,是在虚拟的电脑世界中“开战”。南京邮电大学大学生机器人创新实践基地学生负责人、Apollo机器人俱乐部Apollo3D组及Apollo微软组领队、南京邮电大学自动化学院2013级研究... 查看详情

1022:淘金(2017年中南大学研究生复试机试题)(代码片段)

... 461107513978481622414093416101122033396样例输出242来源/分类2017年中南大学研究生复试机试题   1#include<iostream>2#include<cmath>3usingnamespacestd;4/*典型的动态规 查看详情

华为机试真题c++实现机器人走迷宫

目录题目思路考点Code题目机器人走一个迷宫,给出迷宫的x和y(x*y的迷宫)并且迷宫中有障碍物,输入k表示障碍物有k个,并且会将障碍物的坐标挨个输入。机器人从0,0的位置走到x,y的位置并且只能向x,y增加的方向走,不能回退,如... 查看详情

华为机试真题java实现机器人走迷宫

目录题目思路考点Code题目机器人走一个迷宫,给出迷宫的x和y(x*y的迷宫)并且迷宫中有障碍物,输入k表示障碍物有k个,并且会将障碍物的坐标挨个输入。机器人从0,0的位置走到x,y的位置并且只能向x,y增加的方向走,不能回退,如... 查看详情

旷视首席科学家孙剑博士去世,前辈一路走好!

...者。2003年,孙剑博士毕业于西安交通大学人工智能与机器人研究所。随后,孙剑博士加入微软亚洲研究院,随后带领团队完成了一系列AI相关的研究。2009年,他带领团队完成的“去雾”论文Sin 查看详情

华为od机试golang解题-机器人走迷宫

...题|机试宝典文章目录华为Od必看系列使用说明本期题目:机器人走迷宫题目输入输出示例一输入输出示例二输入输出 查看详情

(动态规划)机器人走迷宫问题

题目一:https://www.nowcoder.com/practice/166eaff8439d4cd898e3ba933fbc6358?tpId=46&tqId=29117&tPage=1&rp=1&ru=/ta/leetcode&qru=/ta/leetcode/question-ranking题目翻译:机器人位于mxn网格的左上角(在下图中标记为“ 查看详情

1023:巨人排队(2017年中南大学研究生复试机试题)(代码片段)

1023:巨人排队时间限制:1Sec  内存限制:128MB提交:185  解决:58[提交][状态][讨论版][命题人:外部导入] 题目描述 巨人国的小学生放假了,老师要给小朋友们排队了。可是这个老师有强迫症,一定要路... 查看详情

读《人工智能狂潮——机器人会超越人类吗?》笔记

松尾丰,作者简介:东京大学院工学系研究科副教授,1997年毕业于东京大学工学部电子信息工学科。2002年完成了该大学的博士课程,成为工程博士。同年任产业技术综合研究所研究员。2005年起任斯坦福大学客座研究员。2007起... 查看详情

临时重发复旦大学在职软件工程硕士(双证)2017年入学考试参考书推荐

...没有),不一定要所谓2018版)政治理论(1)《全国硕士研究生招生考试思想政治理论考试大纲》,教育部考试中心,高等教育出版社,10元。(2)《全国硕士研究生招生考试思想政治理论考试大纲解析》,教育部考试中心,高... 查看详情

临时重发复旦大学在职软件工程硕士(双证)2017年入学考试参考书推荐

...没有),不一定要所谓2018版)政治理论(1)《全国硕士研究生招生考试思想政治理论考试大纲》,教育部考试中心,高等教育出版社,10元。(2)《全国硕士研究生招生考试思想政治理论考试大纲解析》,教育部考试中心,高... 查看详情

华为od机试真题python实现机器人走迷宫真题+解题思路+代码(2022&2023)

查看详情

poj1573robotmotion

题目链接http://poj.org/problem?id=1573题意一个机器人在给定的迷宫中行走,在迷宫中的特定位置只能按照特定的方向行走,有两种情况:①机器人按照方向序列走出迷宫,这时输出机器人走出迷宫的步数;②机器人在迷宫中陷入了循... 查看详情

ros1云课→29如何借助ros实现走迷宫机器人(代码片段)

ROS1云课→28机器人代价地图配置简述:在这个项目中,将创建一个机器人,它将进入一个迷宫形式的房间,然后从另一个点离开房间。详细:在行业中,有些地方机器人可以收集加工过的物体并将这些物体... 查看详情

ros1云课→29如何借助ros实现走迷宫机器人(代码片段)

ROS1云课→28机器人代价地图配置简述:在这个项目中,将创建一个机器人,它将进入一个迷宫形式的房间,然后从另一个点离开房间。详细:在行业中,有些地方机器人可以收集加工过的物体并将这些物体... 查看详情

microsoftacademicgraph机器融合和构建

继2017年8月份首度联合发布开放学术图谱(OpenAcademicGraph,OAG),近日,清华大学和微软研究院再度携手将OAG更新为2.0版本并进行了发布。OAG2.0版本VS1.0版本于2017年开放的OAG1.0版本,通过整合清华AMiner学术图谱的154,771,162篇学术论... 查看详情

路径规划基于matlaba_star算法机器人走迷宫路径规划含matlab源码1389期

一、A_star算法简介1AStar算法及其应用现状进行搜索任务时提取的有助于简化搜索过程的信息被称为启发信息.启发信息经过文字提炼和公式化后转变为启发函数.启发函数可以表示自起始顶点至目标顶点间的估算距离,也可以表示自... 查看详情

华为od机试-机器人走迷宫(js)(代码片段)

机器人走迷宫题目房间有X*Y的方格组成,例如下图为6*4的大小。每一个放个以坐标(x,y)描述。机器人固定从方格(0,0)出发,只能向东或者向北前进,出口固定为房间的最东北角,如下图的方格(5,3)。用例保证机器人... 查看详情