2019独角兽企业重金招聘Python工程师标准>>>

其实模拟题经常用到环这个东西,我发觉挺多宽搜的题目也是,状态来回转移,最终成了环。

多说一点,最近做了不少宽搜的题(很简单),发觉宽搜的题目有两种特征,一个是状态数量有限,一个是求做完某件事的最少步骤(跟这道题没关系)。

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
char g[20][20];
int vis[20][20];
int main()
{// freopen("E_in.txt", "r", stdin);int n, m, e;while(scanf("%d%d%d", &n, &m, &e) && n + m + e){memset(vis, 0, sizeof(vis));for(int i = 1; i <= n; i++) scanf("%s", &g[i][1]);int x = 1, y = e, steps = 0;bool loop = false;for(;;){// printf("%c", g[x][y]);if(x < 1 || x > n || y < 1 || y > m) break;if(!vis[x][y]) vis[x][y]++;else{loop = true;break;}switch(g[x][y]){case 'N':x--; steps++;break;case 'S':x++; steps++;break;case 'W':y--; steps++;break;case 'E':y++; steps++;break;}}// printf("\n");if(!loop){printf("%d step(s) to exit\n", steps);}else{memset(vis, 0, sizeof(vis));int d = 0;for(;;){if(x < 1 || x > n || y < 1 || y > m) break;if(!vis[x][y]) vis[x][y]++;else break;switch(g[x][y]){case 'N':x--; d++;break;case 'S':x++; d++;break;case 'W':y--; d++;break;case 'E':y++; d++;break;}}printf("%d step(s) before a loop of %d step(s)\n", steps-d, d);}}return 0;
}

成环的情况还要算成环之前走了几步,由于规模不大,我就清零了vis数组让它又走了一遍环。。。连代码都是复制粘贴的。还挺有效的,不怎么用动脑子。

转载于:https://my.oschina.net/u/1780798/blog/643820

POJ -- 1573 Robot Motion相关推荐

  1. POJ -1573 Robot Motion

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

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

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

  3. HDOJ1035 ( Robot Motion ) 【递归】

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

  4. POJ 1573 POJ 2632(两道有趣的Robot)实例

    /* ** POJ 2632 Crashing Robots ** Created by Rayn @@ 2014/04/16 ** 坑爹的模拟题,脑壳不清晰的就要被坑惨了 */ #include & ...

  5. robot motion planning介绍

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

  6. Robot Motion(模拟题bfs)

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

  7. ACM Robot Motion

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

  8. POJ 1573机器人走迷宫

    注意初始位置的初始化,如果标为0的话,循环从初始位置开始时move会多1. #include<stdio.h> #include<string.h>int main() {in ...

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

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

最新文章

  1. 采用NAND Flash设计存储设备的挑战在哪里?
  2. python【数据结构与算法】循环赛日程表(分治)
  3. Python之Pandas库学习(一):简介
  4. memlock mysql_mysql配置详解(不断更新)
  5. C++——必须使用复制构造函数的情况
  6. Hadoop 实践(一) 环境搭建
  7. 小米12系列旗舰最新爆料:内藏5000mAh电池但机身更薄
  8. c++调用子进程捕获输出(windows,linux)
  9. python读文件指定行的数据
  10. 一道数学题引发的思考
  11. 如何优雅的调用第三方接口
  12. python简单查询用户
  13. 《C语言及程序设计》程序阅读——数组与指针
  14. MFC 进行界面设计与编程
  15. 如何给计算机c盘加内存,电脑C盘内存太小_这个方法教你扩大C盘空间 - 驱动管家...
  16. 电风扇计算机控制系统,语音识别电风扇控制系统设计.doc
  17. 小米科技面试题-互联网老辛整理
  18. CRC-16/CCITT算法实现
  19. 同步调用和异步调用两者之间的区别
  20. 写在自动化测试之前,我们要做哪些准备?

热门文章

  1. 快速搭建centos7
  2. php相关知识,PHP的基础知识简单介绍
  3. Android获取网页源代码
  4. Android的ArrayAdapter、SimpleAdapter、BaseAdapter与ListView的使用
  5. java8 list map 分组_java8 List转Map,并进行分组过滤求和等操作
  6. html区域背景,保存/恢复HTML5 Canvas的背景区域
  7. redis服务端的maxclient和最大连接空闲时间设置
  8. hadoop的mapreduce知识点
  9. vb中WindowsMediaPlayer的常用属性和方法
  10. 刨根问底(一):从INode客户端看如何培养兴趣