【简单题】-POJ-1573-Robot Motion
来源:互联网 发布:沪深股通数据app 编辑:程序博客网 时间:2024/06/05 12:25
题目链接:http://poj.org/problem?id=1573点击打开链接
题目描述:机器人按照迷宫所指方向走路,输出能几步走出,或者几步之后陷入死循环。
解题思路:
假期刷题指南上说这道题是“同余”,额,,还不知道同余是啥意思的我决定挑战一下,发现这是道水题而已。。(弄个标记数组不就过了吗!喂!)但是水题不会真的让你一下子水过,有坑的水题才是好水题!。这题的坑我就妥妥的掉了进去,半天才出来!尼玛坑的好啊!!我的代码有个BUG就是“0 step(s) before a loop....”这种情况!!唉。再水的题也不能大意,必有坑处!!一定要考虑万分周全,不要懒于设测试数据测试!!血!的!教!训!
到底啥是同余我后来也查了下,写在另外一篇日志里(链接参上):
http://blog.csdn.net/cryssdut/article/details/18844157点击打开链接
AC代码:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;int R,C;char grid[20][20];int vis[20][20];void input(){ int i; for(i=0;i<R;i++) scanf("%s",grid[i]);}bool ok(int x,int y){ if(x>=0&&x<R&&y>=0&&y<C) return true; return false;}void solve(int st){ int cur_x,cur_y; int step=1,sp=0; cur_x=0; cur_y=st-1; while(ok(cur_x,cur_y)) { if(!vis[cur_x][cur_y]) { vis[cur_x][cur_y]=step++; switch(grid[cur_x][cur_y]) { case 'E':cur_y++;break; case 'S':cur_x++;break; case 'W':cur_y--;break; case 'N':cur_x--;break; } } else { sp=step-vis[cur_x][cur_y]; break; } } if(sp) printf("%d step(s) before a loop of %d step(s)\n",step-sp-1,sp); else printf("%d step(s) to exit\n",step-1);}int main(){ //freopen("poj1573_input.txt","r",stdin); int start; while(scanf("%d%d%d",&R,&C,&start),R||C||start) { memset(vis,0,sizeof(vis)); input(); solve(start); } return 0;}
AC截图:
0 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 Robot Motion
- Python 中文code与decode转换
- AVPicture结构中data和linesize关系
- Instant Book Writing Kit.
- 规划经过几个好几个
- extjs3的treepanel级联效果
- 【简单题】-POJ-1573-Robot Motion
- 怎么样做好一个博客
- SQL存储过程——机房收费系统结账的那些事
- 如何在 Outlook 中使用外出时的助理程序
- 社区O2O:得大妈者得天下
- Edge
- 第一章 计算机概论
- <MEMORY>Project Euler NO37
- 适用于多级目录的Makefile(还没试试,改天用了如果有问题,再修改)