1141.走迷宫
时限:1000ms 内存限制:10000K 总时限:3000ms
描述
判断是否能从迷宫的入口到达出口
输入
先输入两个不超过20的正整数表示迷宫的行数m和列数n,再输入口和出口的坐标,最后分m行输入迷宫,其中1表示墙,0表示空格每个数字之间都有空格。
输出
只能向上、下、左、右四个方向走若能到达,则输出"Yes",否则输出"No",结果占一行。
输入样例
3 3
0 0
2 2
0 0 0
1 1 0
0 1 0
输出样例
Yes
#include <iostream>
using namespace std;
int m,n;
int sx,sy; //start
int tx,ty; //target
int maze[20][20];
int walk[2][4]={ //4个方向对应的行列坐标变化
0, +1, 0, -1, //行坐标:左、下、右、上
-1, 0, +1, 0 //列坐标:左、下、右、上
};
void bfs(int x, int y); //深搜,搜到的每个地方都标记-1
bool canmoveto(int x, int y, int i); //判断能否向i方向走一格
int main()
{
cin>>m>>n;
cin>>sx>>sy;
cin>>tx>>ty