有乙隻電子老鼠被困在如下圖所示的迷宮中。這是乙個12*12單元的正方形迷宮,黑色部分表示建築物,白色部分是路。電子老鼠可以在路上向上、下、左、右行走,每一步走乙個格仔。現給定乙個起點s和乙個終點t,求出電子老鼠最少要幾步從起點走到終點。
輸入:本題包含乙個測例。在測例的第一行有四個由空格分隔的整數,分別表示起點的座標s(x.y)和終點的座標t(x,y)。從第二行開始的12行中,每行有12個字元,描述迷宮的情況,其中'x'表示建築物,'.'表示路.
輸出:輸出乙個整數,即電子老鼠走出迷宮至少需要的步數。
#include
#include
using namespace std;
queueq1;
queueq2;
char map[12][12];//迷宮地圖
int sx,sy,tx,ty;//起點和目標座標
int dr[4]=;//0左1下2右3上
int dc[4]=;//0左1下2右3上
int step[12][12];
void readdata();
void init();
int bfs();
int canmoveto(int x,int y,int dire);
int main()}}
void init()
int bfs()
else}}
map[ux][uy]='q';//標記已走過地方
}return(-1);
}int canmoveto(int x,int y,int dire)
x=x+dr[dire];
y=y+dc[dire];
if(map[x][y]=='.')//判是否能走
else
}
1042 電子老鼠闖迷宮
時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述 有乙隻電子老鼠被困在如下圖所示的迷宮中。這是乙個12 12單元的正方形迷宮,黑色部分表示建築物,白色部分是路。電子老鼠可以在路上向上 下 左 右行走,每一步走乙個格仔。現給定乙個起點s和乙個終點t,求出電子老鼠最少要幾步從起點...
電子老鼠闖迷宮(廣度優先演算法bfs)
時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述有乙隻電子老鼠被困在如下圖所示的迷宮中。這是乙個12 12單元的正方形迷宮,黑色部分表示建築物,白色部分是路。電子老鼠可以在路上向上 下 左 右行走,每一步走乙個格仔。現給定乙個起點s和乙個終點t,求出電子老鼠最少要幾步從起點走...
NOJ1042 演算法實驗三 電子老鼠闖迷宮
描述 有乙隻電子老鼠被困在如下圖所示的迷宮中。這是乙個12 12單元的正方形迷宮,黑色部分表示建築物,白色部分是路。電子老鼠可以在路上向上 下 左 右行走,每一步走乙個格仔。現給定乙個起點s和乙個終點t,求出電子老鼠最少要幾步從起點走到終點。輸入 本題包含乙個測例。在測例的第一行有四個由空格分隔的整...