HDU 1035(走迷宫 模拟)

时间:2023-02-25 07:25:49

题意是给定初始位置在一个迷宫中按照要求前进,判断多少步能离开迷宫或者多少步会走入一个长达多少步的循环。

按要求模拟前进的位置,对每一步在 vis[ ] 数组中进行已走步数的记录,走出去或走到已走过的位置结束,计算出所要求的步数即可。

要注意的一点是记得 scanf 在 %c 的时候会读入空格和换行的,而 %s 读入的时候以空格和换行作为读入结束的标志。简单起见直接用 cin / cout 了......

代码如下:

 #include <bits/stdc++.h>
using namespace std;
int vis[][];
char mp[][];
int main()
{
std::ios::sync_with_stdio(false);
int n,m,x,y,cnt;
while(cin >> n >> m)
{
if(!(n||m)) break;
memset(vis,,sizeof(vis));
cin >> y;
for(int i = ; i <= n; ++i)
for(int j = ; j <= m; ++j)
cin >> mp[i][j];
x = ;
cnt = ;
while()
{
if(x<||x>n||y<||y>m)
{
cout << cnt- << " step(s) to exit\n";
break;
}
if(vis[x][y])
{
cout << vis[x][y]- << " step(s) before a loop of " << cnt-vis[x][y] << " step(s)\n";
break;
}
vis[x][y] = cnt++;
if(mp[x][y] == 'N') --x;
else if(mp[x][y] == 'W') --y;
else if(mp[x][y] == 'E') ++y;
else if(mp[x][y] == 'S') ++x;
}
}
return ;
}

HDU 1035(走迷宫 模拟)的更多相关文章

  1. &lbrack;ACM&rsqb; hdu 1035 Robot Motion &lpar;模拟或DFS)

    Robot Motion Problem Description A robot has been programmed to follow the instructions in its path. ...

  2. HDU 2102 A计划&lpar;BFS&sol;DFS走迷宫&rpar;

    A计划 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  3. HDOJ&lpar;HDU&rpar;&period;1035 Robot Motion &lpar;DFS&rpar;

    HDOJ(HDU).1035 Robot Motion [从零开始DFS(4)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DF ...

  4. 百炼3752&colon;走迷宫--栈实现dfs

    3752:走迷宫 总时间限制:  1000ms 内存限制:  65536kB 描述 一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走:有的格子是空地,可以走.给定一个迷宫,求从左上角走到右下角最 ...

  5. 第四周PTA笔记 好吃的巧克力&plus;特殊的翻译&plus;下次一定(续)&plus;走迷宫

    好吃的巧克力 超市正在特价售卖巧克力,正好被贪吃的Lucky_dog看见了. 巧克力从左到右排成一排,一共有N个,M种. 超市有一个很奇怪的规定,就是你在购买巧克力时必须提供两个数字a和b,代表你要购 ...

  6. C语言动态走迷宫

    曾经用C语言做过的动态走迷宫程序,先分享代码如下: 代码如下: //头文件 #include<stdio.h> #include<windows.h>//Sleep(500)函 ...

  7. sdut 2449走迷宫【最简单的dfs应用】

    走迷宫 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_ 题目描述 一个由n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m) ...

  8. 洛谷P1238 走迷宫

    洛谷1238 走迷宫 题目描述 有一个m*n格的迷宫(表示有m行.n列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这m*n个数据和起始点.结束点(起始点和结束点都是用两个 ...

  9. BZOJ 2707&colon; &lbrack;SDOI2012&rsqb;走迷宫&lpar; tarjan &plus; 高斯消元 &rpar;

    数据范围太大不能直接高斯消元, tarjan缩点然后按拓扑逆序对每个强连通分量高斯消元就可以了. E(u) = 1 + Σ E(v) / degree(u) 对拍时发现网上2个程序的INF判断和我不一 ...

随机推荐

  1. EventBus

    EventBus GitHub 上的地址 https://github.com/greenrobot/EventBus EventBus干的事情可以概括来说 别人可以根据某一个事件订阅我,但是他得去实 ...

  2. 发布 Rafy 源码到 GitHub

      最近项目组开始使用 Git 来作为源码管理.我今天就顺便把 Rafy 的源码也迁移到了 github 上,方便大家使用.这是项目的地址:https://github.com/zgynhqf/raf ...

  3. 【Java每日一题】20161129

    package Nov2016; public class Ques1129 { public static void main(String[] args) { final String str = ...

  4. 仅Firefox中A元素包含Select时点击Select不能选择option

    这是在使用京东的一个日期组件时碰到的bug,重现bug的代码精简如下 <!DOCTYPE HTML> <html> <head> <title> 仅Fi ...

  5. Tomcat容器运行struts2&plus;spring&plus;mybatis架构的java web应用程序简单分析

    1.具体的环境为 MyEclipse 8.5以及自带的tomcat spring3.0.5 struts2.3.15.1 mybatis3.0.5 2.想弄明白的一些问题 tomcat集成spring ...

  6. 关闭VS时&comma; 每次都 会弹出 保存以下各项的更改吗&quest;

    如果是添加项目, 或修改了解决方案的配置, 会弹出这个是正常的.  如果在没有修改的情况下还这样就是有问题的.   原因:  在Vs中安装了PowerDesigner插件, 并在VS中点了该插件的东西 ...

  7. JS兼容的方式来获取浏览器的宽度

    <script type="text/javascript"> //need to wait until onload so body is available win ...

  8. OC中常见的结构体&comma;以及NSNumber、NSValue、NSDate的使用

    常见的结构体 NSPoint和CGPoint NSSize和CGSize NSRect 和 CGRect NSPoint和CGPoint的使用 NSPoint和CGPoint是同义的 typedef ...

  9. jQuery基础(四)动画

    1.动画基础隐藏和显示 jQuery中隐藏元素的hide方法 $elem.hide() 提供参数: .hide( options ) 当提供hide方法一个参数时,.hide()就会成为一个动画方法. ...

  10. 深入理解HashMap和CurrentHashMap

    原文链接:https://segmentfault.com/a/1190000015726870 前言 Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据. 本篇 ...