POJ 1573 (13.10.11)
来源:互联网 发布:二次元测量仪怎么编程 编辑:程序博客网 时间:2024/06/05 08:12
题意: 不难理解, 我简单说说, 给出r行c列, 然后从第一行的第i个位置开始走
每个位置有标记E W S N, 分别表示向东, 向西, 向南, 向北
然后, 有两种情况, 一种能走出去, 一种是陷入死循环
做法: 每一步都标上是第几步走的就OK了~ 然后按题意模拟~
AC代码:
#include<stdio.h>char str[100][100];int main() { int r, c, in; while(scanf("%d %d %d", &r, &c, &in) != EOF) { if(r == 0 && c ==0 && in == 0) break; getchar(); for(int i = 0; i < r; i++) gets(str[i]); int tr, tc, loop; int step = 0; int mark = 1; tr = 0; tc = in-1; while(1) { if(str[tr][tc] == 'E') { step++; str[tr][tc] = step + '0'; if(tc == c-1) break; else tc = tc + 1; } else if(str[tr][tc] == 'W') { step++; str[tr][tc] = step + '0'; if(tc == 0) break; else tc = tc - 1; } else if(str[tr][tc] == 'S') { step++; str[tr][tc] = step + '0'; if(tr == r-1) break; else tr = tr + 1; } else if(str[tr][tc] == 'N') { step++; str[tr][tc] = step + '0'; if(tr == 0) break; else tr = tr - 1; } else { mark = 0; loop = str[tr][tc] - '0' - 1; printf("%d step(s) before a loop of %d step(s)\n", loop, step - loop); break; } } if(mark == 1) printf("%d step(s) to exit\n", step); } return 0;}
- POJ 1573 (13.10.11)
- POJ 1068 (13.10.11)
- POJ 1573
- POJ 1573
- poj 1573
- poj 1573
- poj 1573
- poj 1573
- poj-1573
- poj 1573
- poj 1573
- poj 1573
- poj 1573
- poj 1573
- poj 1573 Robot Motion
- Poj 1573 Robot Motion
- poj 1573 1321 递归
- poj 1573 Robot Motion
- c语言静态数组创建栈
- 蜂窝小区最短距离的坐标系解法
- (8)Traceroute程序
- Jquery ajax 得到返回值
- WTL设置工具栏按钮不同大小和文字
- POJ 1573 (13.10.11)
- rwrwrwr
- HDU 3068 最长回文串 Manacher模板题
- 查看和杀死进程
- tabBar隐藏
- CentOS安装和操作mysql
- unable to load default svn client myeclipse SVN安装,wen7 64位安装SVN
- 随手笔记:JAVA中的 Integer
- 手机定位折腾记(1):安卓手机的网络定位与NetworkLocation.apk