BFS(带回溯路径) 典例 代码

BFS经典例题:

题目大意:给定一个点图,然后输出S到T的最短路径。

样例输入:

          /*
          5 6
          ###T#*
          S#****
          *##*##
          ******
          *#*#*#
          */

样例输出:

          (1,0)->(2,0)->(3,0)->(3,1)->(3,2)->(3,3)->(2,3)->(1,3)->(0,3)


AC代码如下:

#include
#include
#include
using namespace std;  //如果没有这个,报错:'queue' does not name a type!
const int N=100;
char graph[N][N];
int prex[N][N];
int prey[N][N];
int n,m;
int sx,sy,tx,ty;
queue  qx;
queue  qy;
int dirx[]={0,0,1,-1};
int diry[]={1,-1,0,0};
bool vis[N][N];
bool check(int x,int y)
{
    return (x>=0&&x=0&&y",x,y);
}
int main()
{
    memset(prex,-1,sizeof(prex));
    memset(prey,-1,sizeof(prey));
    scanf("%d%d",&n,&m);
    for(int i=0;i



你可能感兴趣的:(算法专题)