题解-王子救公主

这篇博客介绍了一个关于王子在迷宫中救公主的问题,迷宫由通行区域、墙、王子和公主的起始位置构成。王子每次可以走两步,而公主只能走一步。目标是判断王子是否能救出公主。通过使用两个深度优先搜索(DFS)算法分别标记王子和公主的路径,判断他们是否能相遇。
摘要由CSDN通过智能技术生成

王子救公主

描述

美丽的公主被可恶的大魔王抓走了,王子动用全国的力量得知,公主被大魔王抓走放进一个迷宫里面。由于全国范围内只有王子自己可以翻越一层迷宫的城墙,所以王子便自己一人走上了拯救公主的路途。碰巧的是大魔王出去了,迷宫也不大。王子可以直接和公主对话,于是两个人便开始相互靠近。王子救公主心切一次可以走两步(所以就可以翻过中间的一层城墙,当然为了题目简单,规定王子一次也只能走两步),公主柔弱一次只能走一步。问在这个迷宫中王子是否可以救出公主(王子可以带公主一起翻墙)。

输入

第一行输入两个整数 n(1 ≤ n ≤ 100), m(1 ≤ m ≤ 100)表示迷宫的行和列。

然后有一个 n × m 的地图,地图由’.’、’#’、‘w’、‘g’这四个部分组成。’.‘表示可以通行的路,’#'表示迷宫的墙,'w’表示王子开始所在的位置,'g’表示公主开始所在的位置。

输出

输出王子是不可以救出自己的公主,如果可以输出"yes",否则输出"no"。

输入样例 1

1 8
w…#.g

输出样例 1

yes

这个题题目中给了两个任务的路线,因此,用两个DFS来标记他们的路线。

  • 王子的路线从一次走两步的过程
bool dfs(){//用布尔类型来判断条件 
	queue<node> tot;
	if(vis[z.x][z.y]==1)return 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值