转载请注明出处:優YoU  http://user.qzone.qq.com/289065406/blog/1299128074

提示:不多说了,又是模拟题,读懂题意直接模拟就可以了,没有算法,没有技术含量,直接贴代码

 1 //Memory Time  2 //256K   0MS  3  4  5 #include<iostream> 6 using namespace std; 7  8 int main(void) 9 {10     int row,col,entry;11     char grid[12][12];     //在规定大小的grid外部至少再定义一圈"门槛"以判断Robot是否离开了grid  (最大grid为10x10)12 13     for(;;)14     {15         memset(grid,'O',sizeof(grid));     // 'O' 为大写字母O,意为 Out16 17         /*Input*/18 19         int i,j;20 21         cin>>row>>col>>entry;22         if(!(row && col && entry))break;23 24         for(i=1;i<=row;i++)25             for(j=1;j<=col;j++)26                 cin>>grid[i][j];27 28             /*Judge Robot get out of the grid or starts a loop in the grid*/29 30             int flag[12][12]={0};   //标记Robot经过某点的次数,当有一点为2则说明Robot陷入了以该点为loop起始点的循环31             int count;32             int r=1;33             int c=entry;34             for(count=0;;count++)35             {36                 flag[r][c]++;  //注意顺序,先标记,再位移37                 if(grid[r][c]=='N')        // ↑38                     r--;39                 else if(grid[r][c]=='S')   // ↓40                     r++;41                 else if(grid[r][c]=='W')   // ←42                     c--;43                 else if(grid[r][c]=='E')   // →44                     c++;45                 else if(grid[r][c]=='O')        // Out46                 {47                     cout<<count<<" step(s) to exit"<<endl;48                     break;49                 }50 51                 if(flag[r][c]==2)         //loop52                 {53                     row=r;           //标记Robot循环起止点54                     col=c;55                     int flg=1;56                     for(r=1,c=entry,count=0;;count++)57                     {58                         if(r==row && c==col && flg==1)  //注意顺序,先寻找循环点再位移(避免Robot刚进入grid就陷入了循环的情况)59                         {60                             cout<<count<<" step(s) before a loop of ";        //输出进入循环前的步数61                             count=0;62                             flg++;63                         }64                         if(r==row && c==col && count!=0 && flg==2)65                         {66                             cout<<count<<" step(s)"<<endl;              //输出循环步数67                             break;68                         }69                         if(grid[r][c]=='N')        // ↑70                             r--;71                         else if(grid[r][c]=='S')   // ↓72                             r++;73                         else if(grid[r][c]=='W')   // ←74                             c--;75                         else if(grid[r][c]=='E')   // →76                             c++;77                     }78                     break;    //跳出count的for循环,不是跳出if(当然break也不能用于跳出if,这里的说明是为了避免误解)79                 }80             }81     }82     return 0;83 }

转载于:https://www.cnblogs.com/lyy289065406/archive/2011/07/29/2121386.html

POJ1573-Robot Motion相关推荐

  1. POJ -1573 Robot Motion

    题目链接:POJ 1573 Robot Motion 一个小模拟,非常easy,依照提示一步步走就是了 #include <iostream> #include <cstdio> ...

  2. HDOJ1035 ( Robot Motion ) 【递归】

    矩阵最大只有10*10,规模较小,用递归可以解决. 最初第15行代码除了问题: (1)直接使用了题目中的输出3 step(s) before a loop of 8 step(s),忘了把3和8改成% ...

  3. robot motion planning介绍

    声明:本篇博客内容主要是由邱强博士的运动规划视频整理而成.非原创,只为了一时复习之方便,侵权必删! 最近的学习顺序不对,至少要把机器人的的动力学部分完成,再来做运动规划的学习,这样搞得我的节奏有点不舒 ...

  4. Robot Motion(模拟题bfs)

    题目描述 A robot has been programmed to follow the instructions in its path. Instructions for the next d ...

  5. pku 1573 Robot Motion 第一周训练——模拟

    http://poj.org/problem?id=1573 一个原来做过的模拟题,大早上做题就是头脑清楚啊.1Y..呵呵.. View Code #include <iostream># ...

  6. ACM Robot Motion

    机器人已被编程为按照其指令中的路径进行操作.机器人要移动的下一个方向的指令放在网格中.可能的指令是 N north (up the page)  S south (down the page)  E ...

  7. POJ -- 1573 Robot Motion

    2019独角兽企业重金招聘Python工程师标准>>> 其实模拟题经常用到环这个东西,我发觉挺多宽搜的题目也是,状态来回转移,最终成了环. 多说一点,最近做了不少宽搜的题(很简单), ...

  8. Principles of Robot Motion Theory, Algorithms, and Implementations下载

    机器人运动理论的原理,算法和实现,非常经典的一本书,做规划的小伙伴们的必备! csdn也有本书的相关资源,但无一例外的都需要积分下载,互联网的分享精神真是被这帮人都玩坏了! 原本想上传,无奈不能上传已 ...

  9. 备战NOIP每周写题记录(一)···不间断更新

    ※Recorded By ksq2013 //其实这段时间写的题远远大于这篇博文中的内容,只不过那些数以百记的基础题目实在没必要写在blog上; ※week one 2016.7.18 Monday ...

  10. oracle hive 数据类型,查询oracle数据字典,并对应出hive的数据类型

    SQL开始 select t2.owner||'.'||t2.TABLE_NAME 源表名, 'dl_{0}_seq.'||'tt_{1}_'||lower(t2.table_name) hive表名 ...

最新文章

  1. Ehcache的基本概念
  2. 针对新手的Java EE7和Maven项目-第4部分-定义Ear模块
  3. 【opencv学习】Blob检测斑点
  4. transactionManager 以及datasource type解析
  5. redhat linux5 安装配置 JDK1.6+Tomcat6+Apache2.2.x+jk_mod1.2
  6. iZotope RX 9 Advanced for Mac - 高级音频修复软件
  7. PyTorch入门(三)损失函数与反向传播
  8. CentOS7安装vmware tools时出现Searching for a valid kernel header path… The path “” is not valid错误
  9. word中常用技巧,快速删除word中光标前或后的内容
  10. SAP 批量导出客户主数据
  11. VM虚拟机ssh免密登录其他主机
  12. 温控中使用PID控制算法
  13. pantum打印机驱动安装m6506_一键完成 驱动轻松装_奔图 M6506NW_办公打印评测试用-中关村在线...
  14. 关于支付宝沙箱支付时提示系统有点儿忙,一会再试试解决方案
  15. 怎么在安卓手机上阅读epub小说,小说阅读器推荐
  16. 彩虹瓶 (25 分)
  17. SAS学习之sas7bdat文件的读取
  18. Python自学要多久?
  19. 谈谈对面向对象的理解,仅供参考
  20. html js页面跳转的几种方式

热门文章

  1. oracle 不查加锁的记录,oracle 锁查询 select加锁方法
  2. c# 分类 机器学习_听说你要用C#做机器学习
  3. springboot 自动装配_Spring Boot 自动装配流程
  4. 安卓最好用的浏览器_iOS最好用的浏览器,没有之一!
  5. samba升级_潮闻快食 | adidas Originals经典鞋款Samba进化升级,C.E x Nike联名系列全释出!...
  6. 奔跑吧Linux内核 入门篇(第二版)遇到问题发
  7. 开发日记-20190610 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
  8. sphinx索引文件进一步说明——最好是结合lucene一起看,直觉告诉我二者本质无异...
  9. H5与Native交互之JSBridge技术
  10. bzoj 4557: [JLoi2016]侦察守卫 树归