题意:给出一个矩形,N,E,S,W分别代表进行移动的方向,如果走出矩形网格则输出经过的网格数,如果在矩形网格内循环,则输出没进入循环之前所走过的网格数和循环所经过的网格数;

思路:创建两个数组,一个字符数组存每个网格中所要进行的操作,另一个整型数组代表状态,0代表没走过,1代表走过了,然后模拟;

   再提醒一点,建立的字符和整型数组要和题目中建里的一模一样,因为这个我又WA了一发、

   

  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4. const int qq=15;
  5. int gid[qq][qq];char s[qq][qq];
  6. int main()
  7. {
  8. int n,m,k;
  9. while(cin >> n >> m >> k)
  10. {
  11. cin.get();
  12. if(n==0&&m==0&&k==0) break;
  13. memset(gid,0,sizeof(gid));
  14. for(int i=0;i<=m+1;++i){
  15. gid[0][i]=1;gid[n+1][i]=1;  //外围标记
  16. }
  17. for(int i=0;i<=n+1;++i){        //外围标记
  18. gid[i][0]=1;gid[i][m+1]=1;
  19. }
  20. for(int j,i=1;i<=n;++i){
  21. for(j=1;j<=m;++j)
  22. s[i][j]=cin.get();
  23. cin.get();
  24. }
  25. int x,y;x=k;y=1;int tot=0;
  26. while(!gid[y][x]){              
  27. while(!gid[y][x]&&s[y][x]=='N'){
  28. gid[y][x]=1;y-=1;++tot;
  29. }
  30. while(!gid[y][x]&&s[y][x]=='E'){
  31. gid[y][x]=1;x+=1;++tot;
  32. }
  33. while(!gid[y][x]&&s[y][x]=='S'){
  34. gid[y][x]=1;y+=1;++tot;
  35. }
  36. while(!gid[y][x]&&s[y][x]=='W'){
  37. gid[y][x]=1;x-=1;++tot;
  38. }
  39. }
  40. if(x<1||y<1||x>m||y>n) cout << tot << " step(s) to exit\n";  
  41. else{
  42. int count=0;
  43. while(gid[y][x]){                //计算循环所经过的网格数  此时1,0的意义互换
  44. while(gid[y][x]&&s[y][x]=='N'){
  45. gid[y][x]=0;y-=1;++count;
  46. }
  47. while(gid[y][x]&&s[y][x]=='E'){
  48. gid[y][x]=0;x+=1;++count;
  49. }
  50. while(gid[y][x]&&s[y][x]=='S'){
  51. gid[y][x]=0;y+=1;++count;
  52. }
  53. while(gid[y][x]&&s[y][x]=='W'){
  54. gid[y][x]=0;x-=1;++count;
  55. }
  56. }
  57. cout << tot-count << " step(s) before a loop of " << count << " step(s)\n";
  58. }
  59. }
  60. }

  

poj1573的更多相关文章

  1. POJ-1573 Robot Motion模拟

    题目链接: https://vjudge.net/problem/POJ-1573 题目大意: 有一个N*M的区域,机器人从第一行的第几列进入,该区域全部由'N' , 'S' , 'W' , 'E' ...

  2. poj1573 Robot Motion(DFS)

    题目链接 http://poj.org/problem?id=1573 题意 一个机器人在给定的迷宫中行走,在迷宫中的特定位置只能按照特定的方向行走,有两种情况:①机器人按照方向序列走出迷宫,这时输出 ...

  3. POJ1573(Robot Motion)--简单模拟+简单dfs

    题目在这里 题意 : 问你按照图中所给的提示走,多少步能走出来??? 其实只要根据这个提示走下去就行了.模拟每一步就OK,因为下一步的操作和上一步一样,所以简单dfs.如果出现loop状态,只要记忆每 ...

  4. poj1573 Robot Motion

    Robot Motion Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12507   Accepted: 6070 Des ...

  5. poj1573 模拟

    Robot Motion Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11270   Accepted: 5487 Des ...

  6. POJ1573——Robot Motion

    Robot Motion Description A robot has been programmed to follow the instructions in its path. Instruc ...

  7. POJ1573 Robot Motion(模拟)

    题目链接. 分析: 很简单的一道题, #include <iostream> #include <cstring> #include <cstdio> #inclu ...

  8. poj1573&amp;&amp;hdu1035 Robot Motion(模拟)

    转载请注明出处:http://blog.csdn.net/u012860063? viewmode=contents 题目链接: HDU:pid=1035">http://acm.hd ...

  9. poj1573模拟

    Robot Motion Time Limit: 1000 MS Memory Limit: 10000 KB 64-bit integer IO format: %I64d , %I64u Java ...

  10. 快速切题 poj1573

    Robot Motion Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 10708   Accepted: 5192 Des ...

随机推荐

  1. LintCode_46 主元素

    题目 给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一. 样例 给出数组[1,1,1,1,2,2,2],返回 1 思路 首先 发现所给的数组是顺序排列好的. 用动态规划 ...

  2. mac pro 1.5T内存是如何实现的

    苹果发布全新Mac Pro:28核1.5T内存 预计售价10万+ 看到这样的新闻标题是不是很震撼,甚至怀疑人生,64位机怎么就可以1.5T内存了,自己的系统盘都没那么大 而且我们知道windows下的 ...

  3. UI标签库专题五:JEECG智能开发平台 Tabs(选项卡父标签)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/28956223 tools string ...

  4. 学习JDK1.8集合源码之--Stack

    1. Stack简介 Stack是集合中对数据结构栈的一种实现,栈的原则是先进先后出,与队列相反(先进先出).Stack是继承自Vector的,意味着它也是由数组实现的线程安全的,不考虑线程安全的情况 ...

  5. typescript+react+antd基础环境搭建

    typescript+react+antd基础环境搭建(包含样式定制) tsconfig.json 配置 // 具体配置可以看上面的链接 这里module moduleResolution的配置都会影 ...

  6. 详细介绍Java中的堆、栈和常量池

    下面主要介绍JAVA中的堆.栈和常量池: 1.寄存器 最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈 存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在 ...

  7. 去掉goland中间的令人烦躁的竖线

    去掉“configured in code Style options”前面的勾即可.

  8. sas信用评分之第二步变量筛选

    sas信用评分之第二步变量筛选 今天介绍变量初步选择.这部分的内容我就只介绍information –value,我这次做的模型用的逻辑回归,后面会更新以基尼系数或者信息熵基础的筛选变量,期待我把. ...

  9. pycharm 2017 序列号失效问题解决(2016-2017版本都有效)

    pycharm 序列号失效问题解决   this license BIG3CLIK6F has been cancelled  具体如下: 对,没错,这个激活码本来可以使用到2018年的,但是,忽然间 ...

  10. mongodb的一些简单操作

    mongo 使用 mongod 开机mongod --dbpath c:\mongo mongod --storageEngine mmapv1 --dbpath c:\mongo mongoimpo ...