poj 1573 Robot Motion
2013-07-31 19:57
357 查看
题目:http://poj.org/problem?id=1573
题意:已知坐标系大小,和初始的最上面的位置,根据命令求是否能出去,或者一直循环
这就是我建的系,画的有点难看哈!
题意:已知坐标系大小,和初始的最上面的位置,根据命令求是否能出去,或者一直循环
这就是我建的系,画的有点难看哈!
#include <iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<stack> #include<queue> #include<cmath> #include<algorithm> using namespace std; char map[500][500]; int vis[500][500]; int dx[5]={0,0,-1,1};//分别代表N,S,W,E int dy[5]={1,-1,0,0}; int main() { int i,j,a,b,t,f,sum,x; while(cin>>a>>b>>t&&(a!=0||b!=0||t!=0)) { sum=0; memset(vis,0,sizeof(vis)); for(j=a; j>=1; j--) { for(i=1; i<=b; i++) cin>>map[i][j]; } i = t; j = a; while(1) { sum++; vis[i][j]=sum; if(map[i][j]=='N') {i+=dx[0]; j+=dy[0];} else if(map[i][j]=='S') {i+=dx[1]; j+=dy[1];} else if(map[i][j]=='W') {i+=dx[2]; j+=dy[2];} else if(map[i][j]=='E') {i+=dx[3]; j+=dy[3];} if(vis[i][j]) { f=1; x=vis[i][j]; break; } if(i>b||j>a || i<=0 ||j<=0) { f=2; break; } } if(f==2) { printf("%d step(s) to exit\n",sum); } else { printf("%d step",x-1); printf("(s)"); printf(" before a loop of %d step",sum-x+1); printf("(s)"); printf("\n"); } } 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 OpenJudge 百练 1573 Robot Motion
- POJ 1573 && hdu 1035 Robot Motion【简单模拟】
- poj 1573 Robot Motion
- poj 1573 Robot Motion
- poj 1573 Robot Motion
- POJ 1573 Robot Motion (DFS)
- POJ 1573 Robot Motion
- POJ训练计划1573_Robot Motion(递归)
- Robot Motion(POJ 1573)(水题+纯模拟)
- POJ 1573 Robot Motion