【 OJ 】 HDOJ1035 迷宫类问题模拟走向 [ 32 ]
本题也没啥说的....按照题目模拟就行了,读取到啥就怎么走,遇到边界或者循环就出,用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 ]相关推荐
- React 16 Jest ES6 Class Mocks(使用ES6语法类的模拟) 实例三、四
转载地址 React 16 Jest ES6 Class Mocks(使用ES6语法类的模拟) 实例三.四 项目初始化 git clone https://github.com/durban89/we ...
- java模拟使用接口,关于java:模拟一个类与模拟它的接口
对于单元测试,我需要模拟几个依赖项.依赖项之一是实现接口的类: public class DataAccessImpl implements DataAccess { ... } 我需要设置一个这个类 ...
- Java黑皮书课后题第10章:**10.7(游戏:ATM机)使用编程练习题9.7中创建的Account类来模拟一台ATM级
**10.7(游戏:ATM机)使用编程练习题9.7中创建的Account类来模拟一台ATM级 题目 程序 代码 Test7.java Test7_Account.java 运行示例 题目 程序 Tes ...
- Django(part49)--用Django自带的User模型类进行模拟登录
学习笔记,仅供参考 用Django自带的User模型类进行模拟登录 基于上个Blog中学习的用户认证系统,我们再用Django自带的User模型类,进行模拟登录(模拟登录的意思就是没有真正的登录,不涉 ...
- 银行招聘网计算机类笔试,中国人民银行计算机类笔试模拟题
银行招聘网(Yinhangzhaopin.com)温馨提示:凡告知"加qq联系.无需任何条件.工作地点不限",收取服装费.押金.报名费等各种费用的信息均有欺诈嫌疑,请保持警惕.银行 ...
- java定义计算机类并模拟其操作
java定义计算机类并模拟其操作 /*** 定义计算机类并模拟其操作*/ public class Computer {//成员变量private String cpu = "Intel&q ...
- java面向对象第一课,定义类,模拟人的行为:吃饭工作休息
java面向对象第一课,定义类,模拟人的行为:吃饭工作休息 /*** 定义类,模拟人的行为:吃饭工作休息*/ public class Person {//静态特征:成员变量 属性 fieldStri ...
- String类的模拟实现
目录: 一.经典String类的问题 1,浅拷贝 2,深拷贝 二.现代写法版的string类 三.传统String类的模拟实现 1.迭代器 2.operator[] 3.size() 4.c_str( ...
- 计算机一级b类考试题软件,全国计算机等级考试一级b类windows模拟考题(二)
全国计算机等级考试一级b类windows模拟考题(二) (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 8.90 积分 全国全国计计算机等算机等级级考 ...
最新文章
- 修改SAP系统字段描述的方法
- Linux操作系统知识
- linux 移植qt,Linux下移植QT(2)---移植QT
- centos so查看_等保测评主机安全:CentOS密码修改周期与登录失败处理
- linux删除eth2设备_Linux卸载/删除多余网卡
- macOS big Sur 无限进入恢复模式,如何修复
- 基于JavaScript+css的购物网站项目
- lora网关以太网传输
- QTableWidgetItem
- MissionPlanner MP地面站添加三维地图支持
- 职场中为人处世那些事!
- SWD调试接口接上下拉电阻
- Java快车读书笔记
- Ubuntu 8.04 LTS 安装
- JEP 378 Text blocks private interface methods
- .Net、C# 汉字转拼音,简体繁体转换方法
- 百度地图调用手机陀螺仪完成指向功能
- 使用YOLOv5实现单摄像头实时目标检测
- 命令行net time同步时间(内网)(转载)
- 在windbg中显示win32k.sys调试符号
热门文章
- html页面中鼠标悬停更换图片
- 销 售 具 备 10 条
- 计算机进入桌面黑屏怎么办,电脑黑屏进不了桌面怎么办_电脑开机黑屏无法进桌面的解决方法-系统城...
- [渝粤教育] 浙江师范大学 敦煌文学艺术 参考 资料
- 真我之旅 梦想之颠 到南极之序
- 插件式编程SBP框架极简教程(基于SpringBoot)
- Vue.js中的生命周期函数
- 机器人产业变革:后来者的机会之窗|财经封面报道
- 异常检测(Anomaly detection)方法小结
- 《嵌入式系统 – 玩转ART-Pi开发板(基于RT-Thread系统)》第9章 基于Select/Poll实现并发服务器(二)