模拟 POJ 1573 Robot Motion
2015-03-27 17:52
471 查看
题目地址:http://poj.org/problem?id=1573
/* 题意:给定地图和起始位置,robot(上下左右)一步一步去走,问走出地图的步数 如果是死循环,输出走进死循环之前的步数和死循环的步数 模拟题:used记录走过的点,因为路线定死了,所以不是死循环的路只会走一次,可以区分出两个步数 注意:比较坑的是,如果不是死循环,临界(走进去就出来)步数是1;而死循环却是0. 这里WA几次。。。 */ #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <cmath> #include <string> #include <map> #include <queue> #include <vector> using namespace std; const int MAXN = 20; const int INF = 0x3f3f3f3f; int a[MAXN][MAXN]; int used[MAXN][MAXN]; void work(int n, int m, int k) { int ans = 0; int cnt = 0; int i = 1, j = k; while (i >= 1 && i <= n && j >= 1 && j <= m) { if (used[i][j] <= 2) { switch (a[i][j]) { case 'N': i -= 1; break; case 'S': i += 1; break; case 'W': j -= 1; break; case 'E': j += 1; break; } used[i][j]++; if (used[i][j] == 2) cnt++; else ans++; } else { int res = ans - cnt; if (res == 1) res = 0; printf ("%d step(s) before a loop of %d step(s)\n", res, cnt); break; } } if (i < 1 || i > n || j < 1 || j > m) printf ("%d step(s) to exit\n", ans); } int main(void) //POJ 1573 Robot Motion { //freopen ("H.in", "r", stdin); int n, m, k; while (~scanf ("%d%d%d", &n, &m, &k) && n && m && k) { getchar (); for (int i=1; i<=n; ++i) { for (int j=1; j<=m; ++j) { a[i][j] = getchar (); } getchar (); } memset (used, 0, sizeof (used)); work (n, m, k); } return 0; } /* 10 step(s) to exit 3 step(s) before a loop of 8 step(s) */
相关文章推荐
- POJ 1573 Robot Motion (经典模拟)
- POJ 1573:Robot Motion:简单模拟
- POJ 1573 Robot Motion (模拟+不回溯的dfs 水题)
- POJ 1573 Robot Motion 水模拟
- POJ 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 暑假训练第9题 模拟 大水题
- poj 1573 Robot Motion 模拟
- POJ 1573 Robot Motion 模拟 难度:0
- POJ 1573 && hdu 1035 Robot Motion【简单模拟】
- POJ 1573 Robot Motion(模拟)
- poj 1573 Robot Motion_模拟
- poj 1573 Robot Motion 【模拟】【刷题计划】
- poj 1573 Robot Motion(java 模拟)
- POJ 1573 && hdu 1035 Robot Motion(简单模拟)
- POJ-1573 Robot Motion 模拟水题
- POJ 1573 && hdu 1035 Robot Motion【简单模拟】