POJ -- 1573 Robot Motion
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相关推荐
- POJ -1573 Robot Motion
题目链接:POJ 1573 Robot Motion 一个小模拟,非常easy,依照提示一步步走就是了 #include <iostream> #include <cstdio> ...
- pku 1573 Robot Motion 第一周训练——模拟
http://poj.org/problem?id=1573 一个原来做过的模拟题,大早上做题就是头脑清楚啊.1Y..呵呵.. View Code #include <iostream># ...
- HDOJ1035 ( Robot Motion ) 【递归】
矩阵最大只有10*10,规模较小,用递归可以解决. 最初第15行代码除了问题: (1)直接使用了题目中的输出3 step(s) before a loop of 8 step(s),忘了把3和8改成% ...
- POJ 1573 POJ 2632(两道有趣的Robot)实例
/* ** POJ 2632 Crashing Robots ** Created by Rayn @@ 2014/04/16 ** 坑爹的模拟题,脑壳不清晰的就要被坑惨了 */ #include & ...
- robot motion planning介绍
声明:本篇博客内容主要是由邱强博士的运动规划视频整理而成.非原创,只为了一时复习之方便,侵权必删! 最近的学习顺序不对,至少要把机器人的的动力学部分完成,再来做运动规划的学习,这样搞得我的节奏有点不舒 ...
- Robot Motion(模拟题bfs)
题目描述 A robot has been programmed to follow the instructions in its path. Instructions for the next d ...
- ACM Robot Motion
机器人已被编程为按照其指令中的路径进行操作.机器人要移动的下一个方向的指令放在网格中.可能的指令是 N north (up the page) S south (down the page) E ...
- POJ 1573机器人走迷宫
注意初始位置的初始化,如果标为0的话,循环从初始位置开始时move会多1. #include<stdio.h> #include<string.h>int main() {in ...
- Principles of Robot Motion Theory, Algorithms, and Implementations下载
机器人运动理论的原理,算法和实现,非常经典的一本书,做规划的小伙伴们的必备! csdn也有本书的相关资源,但无一例外的都需要积分下载,互联网的分享精神真是被这帮人都玩坏了! 原本想上传,无奈不能上传已 ...
最新文章
- 采用NAND Flash设计存储设备的挑战在哪里?
- python【数据结构与算法】循环赛日程表(分治)
- Python之Pandas库学习(一):简介
- memlock mysql_mysql配置详解(不断更新)
- C++——必须使用复制构造函数的情况
- Hadoop 实践(一) 环境搭建
- 小米12系列旗舰最新爆料:内藏5000mAh电池但机身更薄
- c++调用子进程捕获输出(windows,linux)
- python读文件指定行的数据
- 一道数学题引发的思考
- 如何优雅的调用第三方接口
- python简单查询用户
- 《C语言及程序设计》程序阅读——数组与指针
- MFC 进行界面设计与编程
- 如何给计算机c盘加内存,电脑C盘内存太小_这个方法教你扩大C盘空间 - 驱动管家...
- 电风扇计算机控制系统,语音识别电风扇控制系统设计.doc
- 小米科技面试题-互联网老辛整理
- CRC-16/CCITT算法实现
- 同步调用和异步调用两者之间的区别
- 写在自动化测试之前,我们要做哪些准备?
热门文章
- 快速搭建centos7
- php相关知识,PHP的基础知识简单介绍
- Android获取网页源代码
- Android的ArrayAdapter、SimpleAdapter、BaseAdapter与ListView的使用
- java8 list map 分组_java8 List转Map,并进行分组过滤求和等操作
- html区域背景,保存/恢复HTML5 Canvas的背景区域
- redis服务端的maxclient和最大连接空闲时间设置
- hadoop的mapreduce知识点
- vb中WindowsMediaPlayer的常用属性和方法
- 刨根问底(一):从INode客户端看如何培养兴趣