時間限制:
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
**[苗棟棟]原創
上傳者苗棟棟
dfs:
#include#includeint a[10][10]= ,,,,,,,,};
int m,n,p,q,step,ans,vis[10][10];
void dfs(int x,int y,int z)
,,,};
if(x==p&&y==q)
}return;
}int main()
}
bfs:#include#includeint vis[10][10],m,n,p,q,tx,ty,ans,tail,head;
int a[9][9]=
;struct node
que[100];
int main()
,,,};
scanf("%d",&t);
while(t--)
if(tx==p&&ty==q)
}if(flag)
break;
head++;
}printf("%d\n",que[tail-1].s);}}
}
nyoj 58 最小步數
兩份 都是我寫的,前後隔了很久.還好沒有忘記bfs的基本思路 圖一表示起點,首先起點入隊,佇列中有 x1,y1 while q.empty 這個迴圈中出隊,圖二檢視出隊的這個點 此時是起點 四個方向,如果沒走過就入隊那麼,現在佇列中就有 x2,y2 x3,y3 然後就一次進行上面的操作 最後就搜尋到...
nyoj 58 最小步數
難度 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,...
nyoj 58 最小步數
描述 這有乙個迷宮,有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...