藍橋杯 BFS 迷宮

2021-10-06 01:57:45 字數 1120 閱讀 3224

本題為2023年省賽b組e題

要求按字典序列印軌跡

問題描述

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

010000

000100

001001

110000

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

public

class

main,,

,};static

char

d =

;//題目要求字典序

//資料為maze.txt中資料

static

int[

] map =,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

};static

boolean

vis =

newboolean[35

][55]

;public

static

void

main

(string[

] args)

public

static

void

bfs(

int x,

int y,

int num, string s)

for(

int i =

0; i < dir.length; i++)}

}}}class

node

}**思路,編輯格式不易,大家覺得還可以可以點讚、收藏、關注一下吧!

也可以到我的個人部落格參觀一下,

2019 藍橋杯迷宮 bfs 區域性貪心

觀察資料量,明顯不能用dfs,絕對跑不完。所以採用bfs,根據字典序dlru,所以優先走d l r u,區域性最優,導致的全域性最優,最後優先到達終點的,一定是我們之前選擇的最優解。include include using namespace std int r 50 55 bool book 5...

2020藍橋杯A組模擬題BFS迷宮

傳送門 這是一道坑點極其多的bfs題,難度倒是還好,就是可能好多細節處理不好就會一直wa心態咋咧,這道題就是在原有bfs的基礎上加上乙個傳送門,傳送門大家如果練習過bfs專題的話應該不會陌生吧,但是這題存在多個傳送門而且可以互相傳送,那麼我們就考慮有可能傳送到障礙物上或者回到原點形成乙個傳送環,這種...

2020藍橋杯 B組 J迷宮 (bfs)

有乙個 n mn times mn m 的迷宮,其中 表示空地,表示障礙物。除此之外,有 qqq 個單向傳送門 如果進入格仔 ai,bi a i,b i ai bi 那麼會被立即傳送到 ci,di c i,d i ci di 保證每個點至多是乙個傳送門的入口。如果傳送門最終傳送到障礙物上,那麼將會卡...