師兄在藍橋杯培訓的時候講過dfs,但是但是後來又忘了,然後又做,現在又忘//希望師兄不要打我}問題描述
學霸搶走了大家的作業,班長為了幫同學們找回作業,決定去找學霸決鬥。但學霸為了不要別人打擾,住在乙個城堡裡,城堡外面是乙個二維的格仔迷宮,要進城堡必須得先通過迷宮。因為班長還有妹子要陪,磨刀不誤砍柴功,他為了節約時間,從線人那裡搞到了迷宮的地圖,準備提前計算最短的路線。可是他現在正向妹子解釋這件事情,於是就委託你幫他找一條最短的路線。
輸入格式
第一行兩個整數n, m,為迷宮的長寬。
接下來n行,每行m個數,數之間沒有間隔,為0或1中的乙個。0表示這個格仔可以通過,1表示不可以。假設你現在已經在迷宮座標(1,1)的地方,即左上角,迷宮的出口在(n,m)。每次移動時只能向上下左右4個方向移動到另外乙個可以通過的格仔裡,每次移動算一步。資料保證(1,1),(n,m)可以通過。
樣例輸入
input sample 1:
3 3001
100110
input sample 2:
3 3000
000000
樣例輸出
output sample 1:
4rdrd
output sample 2:
4ddrr
**
這道題得試著轉換一下思路,x表示的是行數,y表示的是列數,而不是座標軸的xy軸#include
#include
#include
#include
#include
#include
using namespace std;
int n,m;
char a[
500]
[500];
int xx[4]
=;int yy[4]
=;char pos[4]
=;int visit[
501]
[502];
struct point
;void
bfs(
)for
(int i=
0;i<
4;i++)if
(visit[p2.x]
[p2.y]==1
||a[p2.x]
[p2.y]
=='1'
)continue
; p2.s=p1.s+pos[i]
; visit[p2.x]
[p2.y]=1
;
que.
push
(p2);}
}return;}
intmain()
return0;
}
迷宮問題 dfs bfs
從迷宮入口點 1,1 出發,出口點 m,n 1.求所有路徑條數 2.求最短路徑條數 3.輸出一條最短路徑 題解 向四周搜尋,記下所有一步能到達的座標點 然後依次再從這些點出發,再記下所有一步能到達的座標點,依此類推,直到到達迷宮的出口點 m,n 為止,然後從出口點沿搜尋路徑回溯直至入口。這樣就找到了...
dfs bfs 逃離迷宮
給定乙個m n m行,n列 的迷宮,迷宮中有兩個位置,gloria想從迷宮的乙個位置走到另外乙個位置,當然迷宮中有些地方是空地,gloria可以穿越,有些地方是障礙,她必須繞行,從迷宮的乙個位置,只能走到與它相鄰的4個位置中,當然在行走過程中,gloria不能走到迷宮外面去。令人頭痛的是,glori...
簡單迷宮(DFS BFS)
ps 不得不說自己太菜了,dfs和bfs的模板題都搞了好幾個小時 有乙個 10 x 10 的迷宮,起點是 s 終點是 e 牆是 道路是空格。乙個機械人從起點走到終點。當機械人走到乙個通道塊,前面已經沒有路可走時,它會轉向到當前面向的右手方向繼續走。如果機械人能夠過,則留下足跡 如果走不通,則留下標記...