時間限制:
3000 ms | 記憶體限制:
65535 kb
難度: 4
描述 這有乙個迷宮,有0~8行和0~8列:
1,1,1,1,1,1,1,1,1
1,0,0,1,0,0,1,0,1
1,0,0,1,1,0,0,0,1
1,0,1,0,1,1,0,1,1
1,0,0,0,0,1,0,0,1
1,1,0,1,0,1,0,0,1
1,1,0,1,0,1,0,0,1
1,1,0,1,0,0,0,0,1
1,1,1,1,1,1,1,1,1
0表示道路,1表示牆。
現在輸入乙個道路的座標作為起點,再如輸入乙個道路的座標作為終點,問最少走幾步才能從起點到達終點?
(注:一步是指從一座標點走到其上下左右相鄰座標點,如:從(3,1)到(4,1)。)
輸入
第一行輸入乙個整數n(0
輸出輸出最少走幾步。
樣例輸入
23 1 5 7
3 1 6 7
樣例輸出
1211
/*bfs***/
#include#include#include#define max 0xfffffff
using namespace std;
int ans[9]=;
int x,y,ex,ey,arr[15][15],cnt;
int map[9][9]=;
struct node
a,b;
int judge (struct node h)
void bfs()
{ a.x=x;
a.y=y;
a.tp=0;
memset(arr,0,sizeof(arr));
queueq;
arr[x][y]=1;
q.push(a);
while (!q.empty())
{ a=q.front();
q.pop();
for (int i=0;i<8;i+=2)
{ b.x=a.x+ans[i];
b.y=a.y+ans[i+1];
b.tp=a.tp+1;
if (judge(b))
{if (b.x==ex&&b.y==ey)
{if (b.tp
/*bfs和優先
NYOJ 58 最少步數 bfs
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 這有乙個迷宮,有0 8行和0 8列 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,...
nyoj 58 最少步數 BFS
記憶體限制 64mb 時間限制 3000ms special judge no accepted 17 submit 22 這有乙個迷宮,有0 8行和0 8列 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,...
NYOJ 58 最少步數
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 這有乙個迷宮,有0 8行和0 8列 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,...