X星球的一处迷宫游乐场建在某个小山坡上。
它是由10x10相互连通的小房间组成的。

房间的地板上写着一个很大的字母。
我们假设玩家是面朝上坡的方向站立,则:
L表示走到左边的房间,
R表示走到右边的房间,
U表示走到上坡方向的房间,
D表示走到下坡方向的房间。

X星球的居民有点懒,不愿意费力思考。
他们更喜欢玩运气类的游戏。这个游戏也是如此!

开始的时候,直升机把100名玩家放入一个个小房间内。
玩家一定要按照地上的字母移动。

迷宫地图如下:
------------
UDDLUULRUL
UURLLLRRRU
RRUURLDLRD
RUDDDDUUUU
URUDLLRRUU
DURLRLDLRL
ULLURLLRDU
RDLULLRDDD
UUDDUDUDLL
ULRDLUURRR
------------

请你计算一下,最后,有多少玩家会走出迷宫? 
而不是在里边兜圈子。

注意下运算符重载后的返回值问题。

本题答案31

#include<bits/stdc++.h>char maze[10][10];int vis[10][10];
struct walk{int a,b;walk operator +(const walk& rh)const{walk s{0,0};s.a=this->a+rh.a;s.b=this->b+rh.b;return s;}
};walk to_digit(char a){if(a=='L')return (walk){0,-1};if(a=='R')return (walk){0,1};if(a=='U')return (walk){-1,0};if(a=='D')return (walk){1,0};
}bool dfs(walk &it){while(1){if(vis[it.a][it.b]==1)return false;vis[it.a][it.b]=1;it=it+to_digit(maze[it.a][it.b]);if(it.a>9 || it.b>9 || it.a<0 || it.b<0) return true;}
}int main(){for(int i=0;i<10;i++)scanf("%s",maze[i]);int ans=0;int i,j;for(i=0;i<10;i++)for( j=0;j<10;j++){memset(vis,0,sizeof(vis));walk p{i,j};if(dfs(p))ans++;}       printf("%d",ans);}

2017 蓝桥杯 迷宫(dfs)相关推荐

  1. 蓝桥杯-迷宫(DFS)

    蓝桥杯-迷宫(DFS) 题目描述 X 星球的一处迷宫游乐场建在某个小山坡上.它是由 10 \times 1010×10 相互连通的小房间组成的. 房间的地板上写着一个很大的字母.我们假设玩家是面朝上坡 ...

  2. 2017蓝桥杯java B组纸牌三角形

    2017蓝桥杯java B组纸牌三角形 1.标题:纸牌三角形 A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算).要求每个边的和相等. 下图就是一种排法 A 9 6 4 8 ...

  3. 蓝桥杯Java——DFS深度优先搜索算法

    目录 基本概念 算法思想 模板 例子 基本概念 深度优先搜索算法(Depth First Search,简称DFS):一种用于遍历或搜索树或图的算法. 沿着树的深度遍历树的节点,尽可能深的搜索树的分支 ...

  4. 2017蓝桥杯等差素数(C++B组)

    题目 :                                            等差素数列 2,3,5,7,11,13,....是素数序列. 类似:7,37,67,97,127,157 ...

  5. 2017蓝桥杯C++A:迷宫(DFS)

    一.题目:迷宫 X星球的一处迷宫游乐场建在某个小山坡上.它是由10x10相互连通的小房间组成的.房间的地板上写着一个很大的字母.我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间, R表示走 ...

  6. DFS+回溯 求解 密室逃脱(蓝桥杯,迷宫问题)超级详细

    问题: 真人版密室逃脱游戏风靡全球,不仅在麻瓜世界广受欢迎,而且在魔法世界也十分流行.考虑到魔法世界的人们会使用能够瞬间移动的魔法,密室逃脱游戏在被引进魔法世界时作了一些修改:"密室迷宫&q ...

  7. 2017蓝桥杯省赛---java---A---1(迷宫)

    题目描述 X星球的一处迷宫游乐场建在某个小山坡上. 它是由10x10相互连通的小房间组成的.房间的地板上写着一个很大的字母. 我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间, R表示走到 ...

  8. 2017蓝桥杯结果填空:迷宫

    X星球的一处迷宫游乐场建在某个小山坡上. 它是由10x10相互连通的小房间组成的. 房间的地板上写着一个很大的字母. 我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间, R表示走到右边的房 ...

  9. 2017蓝桥杯C++A:方格分割(DFS)

    四.题目:方格分割 6x6的方格,沿着格子的边线剪开成两部分. 要求这两部分的形状完全相同. 如图:p1.png, p2.png, p3.png 就是可行的分割法. 试计算: 包括这3种分法在内,一共 ...

最新文章

  1. 好想学python怎么猜人名_猜人名的谜语大全及答案
  2. mdpi的手机_【初印象】Android手机屏幕适配API:nodpi,xhdpi,hdpi,mdpi,ldpi
  3. 史上最详细“截图”搭建Hexo博客——For Windows
  4. Linux stat命令显示文件的状态信息
  5. python封装成可执行的小程序_Python打包小程序
  6. mysql主从配置错误_mysql主从配置失败,主从通讯失败
  7. 值不值得入手_iPhone11现在还值不值得入手?真实用户说出心里话
  8. 以知乎为例子来说明MVC是个啥
  9. 建设工程项目全寿命周期管理是指_(必过)2020年二建机电《施工管理》考前必背精华知识点整理一...
  10. 实现c++BMP图像的读取合成拆解加边框
  11. 各种文件类型对应 contentType
  12. 水利系统防雷,如何做好洪水预报警报系统的雷电防护
  13. 三菱PLC 闪烁动作 ST语言
  14. Java实战项目——《谷粒商城》分布式基础篇
  15. android 微信跨境支付,微信跨境支付已在超过49个境外国家和地区合规接入
  16. 一文学会Webpack实用功能|加载器篇
  17. Android Studio上Kotlin的入门,移动应用系统开发
  18. Linux——cut命令
  19. 十个你可能不知道的CloudFlare免费CDN加速技巧
  20. LiDAR 完整指南介绍:激光探测和测距

热门文章

  1. 名画277 恽寿平《山水花卉扇面八开》
  2. JavaScript实现百度搜索框提示
  3. Ubuntu下工作空间的创立以及思岚系列激光雷达的使用(详细)和驱动安装及地图创建
  4. MySql怎么写旅客退订机票_怎么取消机票订单
  5. java有哪些语句_java循环语句有哪些
  6. 925计算机考研,2017年西南石油大学计算机科学学院925数据结构考研题库
  7. RGB-T行人检测汇总
  8. 辛星解读为什么PHP须要模板
  9. js点击视频播放以及封面背景图片
  10. SQL Delete 语句(删除表中的记录)