王子救公主
描述
美丽的公主被可恶的大魔王抓走了,王子动用全国的力量得知,公主被大魔王抓走放进一个迷宫里面。由于全国范围内只有王子自己可以翻越一层迷宫的城墙,所以王子便自己一人走上了拯救公主的路途。碰巧的是大魔王出去了,迷宫也不大。王子可以直接和公主对话,于是两个人便开始相互靠近。王子救公主心切一次可以走两步(所以就可以翻过中间的一层城墙,当然为了题目简单,规定王子一次也只能走两步),公主柔弱一次只能走一步。问在这个迷宫中王子是否可以救出公主(王子可以带公主一起翻墙)。
输入
第一行输入两个整数 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 true;
vis[z.x][z.y]=2;
tot.push(z);
while(!tot.empty()){
node tmp=tot.front();
vis[tmp.x][tmp.y]=2;//两部
tot.pop();//清空数组
for(int i=0;i<4;i++){
int tx=

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

被折叠的 条评论
为什么被折叠?



