ACM 迷宮問題

2021-09-25 11:04:58 字數 1047 閱讀 5931

使用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 牆是 道路是空格。乙個機械人從起點走到終點。當機械人走到乙個通道塊,前面已經沒有路可走時,它會轉向到當前面向的右手方向繼續走。如果機械人能夠過,則留下足跡 如果走不通,則留下標記 下面給出書中的演算法,請你模擬機械人的走法輸出最終的狀...