使用dfs的方法對所有路徑進行遍歷,當某路徑可以到達終點時,使用乙個向量儲存路徑,並使用乙個陣列儲存他的路徑長度,最後輸出路徑最短的路徑。
#include
#include
#include
using namespace std;
int m,n;
int vis[5]
[5];
int f[4]
[2]=
,,,}
;//左,上,右,下
int a[5]
[5];
int aq[20]
[2];
int num[
100]
;int u=0;
vector<
struct pair<
int,
int>
> q;
int xb,yb,xe,ye;
bool flag=true;
bool judge
(int x1,
int y1)
void
dfs(
int x,
int y)
u++;}
return;}
for(
int i=
0;i<
4;i++)}
}int
main()
} xb=0;
yb=0;
xe=4;
ye=4;
vis[xb]
[yb]=1
; pair<
int,
int>
z(xb,yb)
; q.
push_back
(z);
dfs(xb,yb)
;/*if(flag)
}int s=0;
for(
int i=
0;aq[i][0
]!=-1
;i++
)return0;
}
ACM 迷宮問題
定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。input 乙個5 5的二維陣列,表示乙個迷宮。資料保證有唯一解。output 左上角到右下角的最短路徑,格式如樣例所示。sa...
逃離ACM迷宮(BFS)
題目鏈結 題目描述 如下圖所示的是乙個由程式設計題目組成的acm迷宮。迷宮的左上角是入口,右下角是出口。迷宮中每乙個格仔都有乙個程式設計題目,挑戰者要ac該題目後才能通過,大於0的數字表示ac該題目所需的最短時間。數字如果是0表示是陷阱,進去了就出不來。現在的問題是 求挑戰者從入口到出口所需的最短時...
ACM 演算法3 3 迷宮 程式
題目描述 有乙個 10 x 10 的迷宮,起點是 s 終點是 e 牆是 道路是空格。乙個機械人從起點走到終點。當機械人走到乙個通道塊,前面已經沒有路可走時,它會轉向到當前面向的右手方向繼續走。如果機械人能夠過,則留下足跡 如果走不通,則留下標記 下面給出書中的演算法,請你模擬機械人的走法輸出最終的狀...