本题也没啥说的....按照题目模拟就行了,读取到啥就怎么走,遇到边界或者循环就出,用visit记录访问过的点,然后读取的每一个点都入栈(可用数组来模拟),如果突然读取到了已经访问过的点说明进入了循环,就去数组栈中找这个重复点,之前点数目为未循环步数,之后点数目为循环数目。

AC代码:

#include <iostream>
using namespace std;
char map[100][100];//地图大小开100
bool visit[100][100];
char d[4] = { 'E','S','W','N' };
int dri[4][2] = { { 0,1 },{ 1, 0 },{ 0, -1 },{ -1, 0 } };
struct p{int x;int y;
}cp;
p stack[100];
int main(void) {int r,c, s;cin >> r >> c >> s;int i, j,index;int step = 0;while (c || r) {index = step = 0;memset(visit, 0, sizeof(visit));for (i = 0; i < r; i++) {for (j = 0; j < c; ++j) {cin >> map[i][j];}}//录入地图信息if (s > c)continue;//越界//按题目模拟cp.x = 0; cp.y = s - 1;while (((cp.x >= 0 && cp.x < r) && (cp.y >= 0 && cp.y < c)) && !visit[cp.x][cp.y]) {//在范围内并且为被访问stack[index++] = cp;visit[cp.x][cp.y] = 1;for (i = 0; i < 4; i++) {if (map[cp.x][cp.y] == d[i]) {cp.x += dri[i][0];cp.y += dri[i][1];break;}//方向转变}}//出来有2种情况 1 越界  2 循环if (cp.x >= 0 && cp.x < r&&cp.y >= 0 && cp.y < c) {//在范围内就是循环for (i = 0; i < index; ++i) {if (stack[i].x == cp.x&&stack[i].y == cp.y) {step = i ;break;}}//找出循环stepcout << step << " step(s) before a loop of " << index - step << " step(s)" << endl;}else {//循环step = index;cout << step << " step(s) to exit" << endl;}cin >> r >> c >> s;}system("pause");return 0;
}

【 OJ 】 HDOJ1035 迷宫类问题模拟走向 [ 32 ]相关推荐

  1. React 16 Jest ES6 Class Mocks(使用ES6语法类的模拟) 实例三、四

    转载地址 React 16 Jest ES6 Class Mocks(使用ES6语法类的模拟) 实例三.四 项目初始化 git clone https://github.com/durban89/we ...

  2. java模拟使用接口,关于java:模拟一个类与模拟它的接口

    对于单元测试,我需要模拟几个依赖项.依赖项之一是实现接口的类: public class DataAccessImpl implements DataAccess { ... } 我需要设置一个这个类 ...

  3. Java黑皮书课后题第10章:**10.7(游戏:ATM机)使用编程练习题9.7中创建的Account类来模拟一台ATM级

    **10.7(游戏:ATM机)使用编程练习题9.7中创建的Account类来模拟一台ATM级 题目 程序 代码 Test7.java Test7_Account.java 运行示例 题目 程序 Tes ...

  4. Django(part49)--用Django自带的User模型类进行模拟登录

    学习笔记,仅供参考 用Django自带的User模型类进行模拟登录 基于上个Blog中学习的用户认证系统,我们再用Django自带的User模型类,进行模拟登录(模拟登录的意思就是没有真正的登录,不涉 ...

  5. 银行招聘网计算机类笔试,中国人民银行计算机类笔试模拟题

    银行招聘网(Yinhangzhaopin.com)温馨提示:凡告知"加qq联系.无需任何条件.工作地点不限",收取服装费.押金.报名费等各种费用的信息均有欺诈嫌疑,请保持警惕.银行 ...

  6. java定义计算机类并模拟其操作

    java定义计算机类并模拟其操作 /*** 定义计算机类并模拟其操作*/ public class Computer {//成员变量private String cpu = "Intel&q ...

  7. java面向对象第一课,定义类,模拟人的行为:吃饭工作休息

    java面向对象第一课,定义类,模拟人的行为:吃饭工作休息 /*** 定义类,模拟人的行为:吃饭工作休息*/ public class Person {//静态特征:成员变量 属性 fieldStri ...

  8. String类的模拟实现

    目录: 一.经典String类的问题 1,浅拷贝 2,深拷贝 二.现代写法版的string类 三.传统String类的模拟实现 1.迭代器 2.operator[] 3.size() 4.c_str( ...

  9. 计算机一级b类考试题软件,全国计算机等级考试一级b类windows模拟考题(二)

    全国计算机等级考试一级b类windows模拟考题(二) (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 8.90 积分 全国全国计计算机等算机等级级考 ...

最新文章

  1. 修改SAP系统字段描述的方法
  2. Linux操作系统知识
  3. linux 移植qt,Linux下移植QT(2)---移植QT
  4. centos so查看_等保测评主机安全:CentOS密码修改周期与登录失败处理
  5. linux删除eth2设备_Linux卸载/删除多余网卡
  6. macOS big Sur 无限进入恢复模式,如何修复
  7. 基于JavaScript+css的购物网站项目
  8. lora网关以太网传输
  9. QTableWidgetItem
  10. MissionPlanner MP地面站添加三维地图支持
  11. 职场中为人处世那些事!
  12. SWD调试接口接上下拉电阻
  13. Java快车读书笔记
  14. Ubuntu 8.04 LTS 安装
  15. JEP 378 Text blocks private interface methods
  16. .Net、C# 汉字转拼音,简体繁体转换方法
  17. 百度地图调用手机陀螺仪完成指向功能
  18. 使用YOLOv5实现单摄像头实时目标检测
  19. 命令行net time同步时间(内网)(转载)
  20. 在windbg中显示win32k.sys调试符号

热门文章

  1. html页面中鼠标悬停更换图片
  2. 销 售 具 备 10 条
  3. 计算机进入桌面黑屏怎么办,电脑黑屏进不了桌面怎么办_电脑开机黑屏无法进桌面的解决方法-系统城...
  4. [渝粤教育] 浙江师范大学 敦煌文学艺术 参考 资料
  5. 真我之旅 梦想之颠 到南极之序
  6. 插件式编程SBP框架极简教程(基于SpringBoot)
  7. Vue.js中的生命周期函数
  8. 机器人产业变革:后来者的机会之窗|财经封面报道
  9. 异常检测(Anomaly detection)方法小结
  10. 《嵌入式系统 – 玩转ART-Pi开发板(基于RT-Thread系统)》第9章 基于Select/Poll实现并发服务器(二)