UVa 10377 - Maze Traversal

題目:一個機器人在迷宮中行走,它的指令是方向控制(前進、左轉、右轉),給你初始位置和一些指令;

問最後停在那個位置。

分析:模擬。直接模擬即可,注意一下細節。

如果,不能行走(邊界或者是墻壁)則停在原地,指令是到達‘Q‘结束。

說明:注意多组输出之间有一个换行,不然会WA,UVa这个PE算WA╮(╯▽╰)╭。

#include <cstring>
#include <cstdio>

char maps[62][62];
char towards[5] = "NESW";
int  dxy[4][2] = {-1,0,0,1,1,0,0,-1};

int main()
{
	int  R,C,T,X,Y,F,x,y;
	char command;
	scanf("%d",&T);
	while (T --) {
		scanf("%d%d",&R,&C);
		getchar();
		for (int i = 0; i < R; ++ i)
			gets(maps[i]);
		scanf("%d%d",&X,&Y);
		F = 0; X --; Y --;
		while ((command = getchar()) != 'Q') {
			if (command == 'R')
				F = (F+1)%4;
			else if (command == 'L')
				F = (F+3)%4;
			else if (command == 'F') {
				x =  X+dxy[F][0];
				y =  Y+dxy[F][1];
				if (x >= 0 && x < R && y >= 0 && y < C && maps[x][y] != '*') {
					X = x;
		 			Y = y;
				}
			}
		}
		printf("%d %d %c\n",X+1, Y+1, towards[F]);
		if (T) printf("\n");
	}
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-03 14:03:46

UVa 10377 - Maze Traversal的相关文章

uva 784 Maze Exploration(DFS遍历图)

uva 784 Maze Exploration A maze(迷宫) of rectangular(矩形的) rooms is represented on a two dimensional(空间的) grid as illustrated(阐明) in figure 1a. Each point of the grid is represented by a character. The points of room walls are marked by the same charact

UVa 784 Maze Exploration

方法:dfs(flood fill) dfs code: 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <iostream> 5 #include <string> 6 #include <vector> 7 #include <stack> 8 #include <bitset> 9 #include &l

uva 784 Maze Exploration(简单dfs)

这道题看上去很麻烦,什么迷宫啊,门之类的,其实挺简单的,就是让把与 * 连通的都置为 # 包括 * , 直接dfs就可以了,不过我wa了好多次...最后竟然是多读了一个换行,忘了加getchar()了,gets()函数 会把缓冲区里面的换行给读进去的...应该把换行去掉,血的教训啊... 代码: #include<stdio.h> #include<string.h> #include<stdlib.h> int dx[4]={-1,0,0,1}; int dy[4]=

利用不相交集类制作迷宫游戏(数据结构课程设计——迷宫老鼠)

之前大一的时候有几天闲来无事,为了学习做了一个可以自动生成迷宫,可以寻找最短路径的小游戏,现在整理分享一下 简单介绍: 利用不相交集类考虑一个迷宫的生成,一个简单算法就是从各处的墙壁开始(除入口和出口之外).此时,不断地随机选择一面墙,如果被该墙分割的单元彼此不联通,那么就把这面墙拆掉.重复这个过程直到开始单元和终止单元联通,那么就得到一个迷宫.实际上不断的拆掉墙壁直到每个单元都可以从其他单元到达更好(这会使迷宫产生更多误导的路径). 整理一下迷宫的生成算法就是: (1)将迷宫初始时看成一个一个

HOJ 题目分类

转自:http://blog.sina.com.cn/s/blog_65f3869301011a1o.html ******************************************************************************* 简单题(包括枚举,二分查找,(复杂)模拟,基础数据结构(栈.队列),杂题等 ****************************************************************************

POJ 3026 Borg Maze &amp; UVA 10307 Killing Aliens in Borg Maze(BFS,最小生成树)

http://poj.org/problem?id=3026 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1248 Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8498   Accepted: 2862 Description The Bor

Uva 705 - Slash Maze

  Slash Maze  By filling a rectangle with slashes (/) and backslashes ( ), you can generate nice little mazes. Here is an example: As you can see, paths in the maze cannot branch, so the whole maze only contains cyclic paths and paths entering somewh

uva 705 Slash Maze 斜线迷宫

唉,上午一直不在状态,都没有好好思考,基本上算是看的题解,切记做题一定要专注,一定要多思考,不能轻易的看题解了,这道题可以把'/'和'\'转化,用0和1表示, '/'表示为 : '\'表示为 001 100 010 010 100 001 相当于扩大了三倍,最后结果除以三就ok了 然后就可以用普通的搜索求了,还是连通问题,注意一点只要是遍历到处于边缘的0就说明这个一定不是环,wa了一次,还是没注意到每组案例之间都有一个空行:休息会,再奋战. 上代码:(基本上跟别人写的一样) #include<s

Maze Exploration UVA 784 (简单的深度优先搜索)

说说: 这道题的题意,事先题目给你如下图所示: XXXXXXXXX X         X       X X    *             X X        X        X XXXXXXXXX X        X X        X X        X XXXXX 可以把以上图像想象成一间房子,字符'X'是围墙,你现在所处的位置是'*'所在的地方,要求你将'*'周围的空白,包括'*'本身全部用'#代替.注意不能穿越围墙.其实就是最最基础的深度遍历的问题,只要找到'*'所在的