poj1573(模拟bfs)

原创 2012年03月29日 22:44:39

             题目链接:http://poj.org/problem?id=1573

        题意:一个row*col的矩阵上,每个格子写了机器人的运动方向(N:向上,S:向下,E:向右,W:向左)。给出机器人的起点,若最后机器人是出了矩阵,则输出走过的格数,若最后机器人永远在矩阵内运动,则输出循环前后的格数。

代码:

#include<stdio.h>
char gird[11][11];
int n,m,k,flag,flag1,num,num1;
void dfs(int row,int col)
{
	    
	if(row<0||row==n||col<0||col==m)
	{ flag=1; return; } 
   	if(gird[row][col]==1)
	{   
		flag=0;
	    gird[row][col]=0;
        return ;
	}
	num++;
	if(gird[row][col]-'N'==0){gird[row][col]=1;dfs(row-1,col);} 
	else if(gird[row][col]-'S'==0) {gird[row][col]=1;dfs(row+1,col);} 
    else if(gird[row][col]-'E'==0){gird[row][col]=1;dfs(row,col+1);} 
	else if(gird[row][col]-'W'==0){gird[row][col]=1;dfs(row,col-1);} 
	if(gird[row][col]==0)flag1=1;
 	if(flag1) num1++;
    return;
}
void main()
{
	while((scanf("%d%d%d",&n,&m,&k)!=EOF)&&(n!=0&&m!=0&&k!=0))
	{
		int i;
		for(i=0;i<n;i++)
		scanf("%s",gird[i]);
		num=0;
		num1=0;
		flag1=0;
	    dfs(0,k-1);
		if(flag)
			printf("%d step(s) to exit\n",num);
         else
		 printf("%d step(s) before a loop of %d step(s)\n",num1-1,num-num1+1);
		 
	}
}


 

相关文章推荐

POJ 1573 Robot Motion【是搜索,就不要纠结是DFS还是BFS】

Robot Motion Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12845   Accepted: 62...

poj 1573 模拟

#include #include #include using namespace std; const int N = 1010; char map[N][N]; int visit[N][...

poj 1573 Robot Motion 模拟

Robot Motion Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14135   ...
  • LZK1997
  • LZK1997
  • 2017年07月18日 20:59
  • 121

POJ 1573 Robot Motion 模拟机器人行走

显然这是一道模拟题,但是对我来说还算是比较难的一道模拟题把。 模拟机器人走的方向,判断从起点到出去要多少步,如果出不去,则判断机器人在里面走了一个多少步的环路。 我采用的普通模拟,但是后面又写了一...

poj1573&&hdu1035 Robot Motion(模拟)

poj1573&&hdu1035 Robot Motion(模拟)

POJ 1573 Robot Motion 模拟

题意:给定一个矩阵,里面有N,S,W,E这4种字母,分别表示向上走,向下走,向左走,向右走4种操作,现给定一个起始点,若能走出矩阵,输出所需移动次数,若最终循环,则输出循环前的移动次数和循环一次的次数...
  • Tsaid
  • Tsaid
  • 2011年09月09日 16:58
  • 550

POJ 1573 && hdu 1035 Robot Motion【简单模拟】

题目链接:http://poj.org/problem?id=1573                    http://acm.hdu.edu.cn/showproblem.php?pid=10...

poj1573——Robot Motion(模拟)

DescriptionA robot has been programmed to follow the instructions in its path. Instructions for the ...

POJ 1573 Robot Motion模拟

题目:http://poj.org/problem?id=1573    题目大意:一个棋牌上布满了N,E,S,W指令,人从北边的一个初始列按照棋牌的指令开始移动。直到走出棋牌,或者出现循环为止。 ...

POJ 1573 Robot Motion (模拟+不回溯的dfs 水题)

Robot Motion Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9159   Accepted: 444...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj1573(模拟bfs)
举报原因:
原因补充:

(最多只允许输入30个字)