模板 迷宮 1

2021-10-02 09:04:28 字數 1457 閱讀 9696

題目描述

鵬鵬在乙個迷宮裡困住了。

迷宮是長方形的,有 n 行 m 列個格仔。一共有 3 類格仔,空地用字元』.』 表示,牆壁用』#』表示,陷阱用』*』表示。

特別地,迷宮中有兩個特殊的格仔:起點用』s』表示;終點用』e』表示。 起點和終點都是空地。(』s』和』e』均為大寫字母)

鵬鵬的任務是:從起點出發,沿著某條路徑,走到終點。

遊戲對路徑的要求有三條:每次只能向相鄰格仔(上/下/左/右)移動一步;不能經過牆壁(即可以經過空地和陷阱);不能走出迷宮邊界。

聰明的你請告訴鵬鵬,他能完成任務嗎?如果能,鵬鵬能否不經過任何陷阱就完成任務呢?

輸入格式

第一行為兩個整數 n,m(2≤n,m≤7)。

接下來有 n 行,每行是乙個長度為 m 的字串,依次表示迷宮的每一行格仔。

輸出格式

有一行,是乙個字串。

如果鵬鵬可以不經過任何陷阱就到達終點,輸出」good」;

否則,如果經過 若干陷阱能到達終點,輸出」ok」;

否則,輸出」bad」。(所有字母均為大寫)

輸入樣例 134

##.e

s*.#..

.*輸出樣例 1

good

輸入樣例 233

##es*.#.

.輸出樣例 2

ok提示

##671*

5#234

*樣例 1 的最優路線為 1

->2-

>3-

>4-

>5-

>6-

>

7,如上圖。

模板題

c++ code:

#include

using

namespace std;

int n,m,sx,sy,fx,fy;

char g[10]

[10];

int vis[10]

[10];

const

int dx[4]

=;const

int dy[4]

=;void

dfs1

(int x,

int y)

else}}

}void

dfs2

(int x,

int y)

else}}

}int

main()

vis[sx]

[sy]=1

;dfs1

(sx,sy)

;memset

(vis,0,

sizeof

(vis));

vis[sx]

[sy]=1

;dfs2

(sx,sy)

; cout<<

"bad"

;return0;

}

dfs迷宮問題模板

輸入起點終點座標,輸入迷宮,輸出最短路 對於每種情況到達的下一步,又有n種情況可以走,include include include define n 100 using namespace std int map n n vis n n int endx,endy,m,n int min 9999...

bfs迷宮問題模板

bfs一般用於求迷宮起點到終點的最短距離,原因是迷宮各個方向權值相等 include include include include define n 50 using namespace std struct point point start point p queueq int m,n int...

迷宮問題1

c 語言程式設計練習1 程式設計練習 編寫程式尋找迷宮路徑。入口 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 出口x 圖1讀取迷宮檔案 如圖1所示 不限於此迷宮 以入口為開始 出口為終點 程式設計尋找一條穿越迷宮的路...