迷宮 藍橋初賽

2021-10-10 02:46:55 字數 1021 閱讀 6778

下圖給出了乙個迷宮的平面圖,其中標記為1 的為障礙,標記為0 的為可以通行的地方。

010000

000100

001001

110000

迷宮的入口為左上角,出口為右下角,在迷宮中,只能從乙個位置走到這個它的上、下、左、右四個方向之一。對於上面的迷宮,從入口開始,可以按drrurrdddr 的順序通過迷宮,一共10 步。其中d、u、l、r 分別表示向下、向上、向左、向右走。對於下面這個更複雜的迷宮(30 行50 列),請找出一種通過迷宮的方式,其使用的步數最少,在步數最少的前提下,請找出字典序最小的乙個作為案。

請注意在字典序中d思路:這道題目求乙個圖的最短路徑,這是bfs的強項。但是題目還有乙個條件就由於最短路徑可能有很多條,輸出字典序最短的那條。這就需要控制一下條件,在擴充套件下乙個節點時,需要按照dlru的順序進行擴充套件,這樣如果最短路徑有很多條,那麼總是字典序最小的那一條先被找到。

**:

#include

#include

#include

using

namespace std;

const

int xn=30;

const

int yn=50;

typedef

struct nodenode;

node q[xn*yn+5]

;char a[xn+1]

[yn+1]

;int book[xn]

[yn]

;void

print

(int n)

}int

main()

,,,}

;//d,l,r,u按照字典序順序搜尋

int move[4]

=;int flag=0;

while

(headif(flag==1)

break

; head++;}

print

(tail-1)

;return0;

}

藍橋杯2017初賽 迷宮

請你計算一下,最後,有多少玩家會走出迷宮?而不是在裡邊兜圈子。答 很簡單的題吧算是,今天開始每日還就那個一更,話說這x星人確實也太懶了點吧?include include using namespace std char x 10 10 int visit 10 10 如果這個村民一直不出來他肯定會...

藍橋杯2019初賽 迷宮

迷宮 下圖給出了乙個迷宮的平面圖,其中標記為1 的為障礙,標記為0 的為可 以通行的地方。010000 000100 001001 110000 迷宮的入口為左上角,出口為右下角,在迷宮中,只能從乙個位置走到這 個它的上 下 左 右四個方向之一。對於上面的迷宮,從入口開始,可以按drrurrdddr...

藍橋杯2017初賽 迷宮 dfs

題目描述 x星球的一處迷宮遊樂場建在某個小山坡上。它是由10x10相互連通的小房間組成的。房間的地板上寫著乙個很大的字母。我們假設玩家是面朝上坡的方向站立,則 l表示走到左邊的房間,r表示走到右邊的房間,u表示走到上坡方向的房間,d表示走到下坡方向的房間。x星球的居民有點懶,不願意費力思考。他們更喜...