Poj 1573 Robot Motion
2010-09-04 14:14
387 查看
顺着搜就行了。
#include<cstdio> #include<cstring> using namespace std; int r,c,sta; char gra[15][15]; int s[15][15]; bool check(int x,int y) { if (x>=0&&x<r&&y>=0&&y<c) return 1; return 0; } bool Search(int &step,int &loop) { int i,j,x,y,dx,dy,cnt=0; memset(s,-1,sizeof(s)); x=0,y=sta-1; s[x][y]=0; while (check(x,y)){ switch(gra[x][y]){ case 'N': dy=y,dx=x-1; break; case 'E': dx=x,dy=y+1; break; case 'W': dx=x,dy=y-1; break; case 'S': dy=y,dx=x+1; break; } if (!check(dx,dy)) break; if (s[dx][dy]<0) s[dx][dy]=++cnt; else { loop=cnt-s[dx][dy]+1; step=s[dx][dy]; return 0; } x=dx,y=dy; } step=cnt+1; return 1; } int main() { int i,a,b; while (scanf("%d%d%d",&r,&c,&sta)&&(r+c+sta)){ for (int i=0;i<r;i++) scanf("%s",gra[i]); a=b=0; if (Search(a,b)) printf("%d step(s) to exit/n",a); else printf("%d step(s) before a loop of %d step(s)/n",a,b); } return 0; }
相关文章推荐
- poj-1573 Robot Motion
- poj 1573 Robot Motion
- poj-1573-Robot Motion
- POJ 1573 Robot Motion
- POJ -1573 Robot Motion
- POJ 1573 Robot Motion
- POJ 1573 Robot Motion
- POJ 1573 Robot Motion
- POJ 1573 Robot Motion (经典模拟)
- POJ 1573 Robot Motion(模拟)
- 【简单题】-POJ-1573-Robot Motion
- POJ 1573--Robot Motion
- POJ-1573-Robot Motion
- POJ 1573 Robot Motion
- POJ 1573 Robot Motion 水模拟
- poj-1573-Robot Motion--模拟
- poj 1573 Robot Motion (模拟题)
- 【POJ】1573 & 【HDU】1035 - Robot Motion(模拟)
- poj 1573 Robot Motion(java 模拟)
- poj_1573 Robot Motion(简单模拟)