2017 蓝桥杯 迷宫(dfs)
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)相关推荐
- 蓝桥杯-迷宫(DFS)
蓝桥杯-迷宫(DFS) 题目描述 X 星球的一处迷宫游乐场建在某个小山坡上.它是由 10 \times 1010×10 相互连通的小房间组成的. 房间的地板上写着一个很大的字母.我们假设玩家是面朝上坡 ...
- 2017蓝桥杯java B组纸牌三角形
2017蓝桥杯java B组纸牌三角形 1.标题:纸牌三角形 A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算).要求每个边的和相等. 下图就是一种排法 A 9 6 4 8 ...
- 蓝桥杯Java——DFS深度优先搜索算法
目录 基本概念 算法思想 模板 例子 基本概念 深度优先搜索算法(Depth First Search,简称DFS):一种用于遍历或搜索树或图的算法. 沿着树的深度遍历树的节点,尽可能深的搜索树的分支 ...
- 2017蓝桥杯等差素数(C++B组)
题目 : 等差素数列 2,3,5,7,11,13,....是素数序列. 类似:7,37,67,97,127,157 ...
- 2017蓝桥杯C++A:迷宫(DFS)
一.题目:迷宫 X星球的一处迷宫游乐场建在某个小山坡上.它是由10x10相互连通的小房间组成的.房间的地板上写着一个很大的字母.我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间, R表示走 ...
- DFS+回溯 求解 密室逃脱(蓝桥杯,迷宫问题)超级详细
问题: 真人版密室逃脱游戏风靡全球,不仅在麻瓜世界广受欢迎,而且在魔法世界也十分流行.考虑到魔法世界的人们会使用能够瞬间移动的魔法,密室逃脱游戏在被引进魔法世界时作了一些修改:"密室迷宫&q ...
- 2017蓝桥杯省赛---java---A---1(迷宫)
题目描述 X星球的一处迷宫游乐场建在某个小山坡上. 它是由10x10相互连通的小房间组成的.房间的地板上写着一个很大的字母. 我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间, R表示走到 ...
- 2017蓝桥杯结果填空:迷宫
X星球的一处迷宫游乐场建在某个小山坡上. 它是由10x10相互连通的小房间组成的. 房间的地板上写着一个很大的字母. 我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间, R表示走到右边的房 ...
- 2017蓝桥杯C++A:方格分割(DFS)
四.题目:方格分割 6x6的方格,沿着格子的边线剪开成两部分. 要求这两部分的形状完全相同. 如图:p1.png, p2.png, p3.png 就是可行的分割法. 试计算: 包括这3种分法在内,一共 ...
最新文章
- 好想学python怎么猜人名_猜人名的谜语大全及答案
- mdpi的手机_【初印象】Android手机屏幕适配API:nodpi,xhdpi,hdpi,mdpi,ldpi
- 史上最详细“截图”搭建Hexo博客——For Windows
- Linux stat命令显示文件的状态信息
- python封装成可执行的小程序_Python打包小程序
- mysql主从配置错误_mysql主从配置失败,主从通讯失败
- 值不值得入手_iPhone11现在还值不值得入手?真实用户说出心里话
- 以知乎为例子来说明MVC是个啥
- 建设工程项目全寿命周期管理是指_(必过)2020年二建机电《施工管理》考前必背精华知识点整理一...
- 实现c++BMP图像的读取合成拆解加边框
- 各种文件类型对应 contentType
- 水利系统防雷,如何做好洪水预报警报系统的雷电防护
- 三菱PLC 闪烁动作 ST语言
- Java实战项目——《谷粒商城》分布式基础篇
- android 微信跨境支付,微信跨境支付已在超过49个境外国家和地区合规接入
- 一文学会Webpack实用功能|加载器篇
- Android Studio上Kotlin的入门,移动应用系统开发
- Linux——cut命令
- 十个你可能不知道的CloudFlare免费CDN加速技巧
- LiDAR 完整指南介绍:激光探测和测距