拯救大兵瑞恩

2021-07-23 09:52:26 字數 1257 閱讀 1004

【題目描述】

特種兵麥克接到命令要求營救被

敵軍俘虜的大兵瑞恩。瑞恩被關押在乙個迷宮裡,迷宮地形複雜,但幸好麥克得到了迷宮的

地形圖。

迷宮的外形是乙個長方形,其南北方向被劃分為n行,東西方向被劃分為m列,

於是整個迷宮被劃分為n×m個單元。每乙個單元的位置可用乙個有序數對(單元的行號,

單元的列號)來表示。南北或東西方向相鄰的2個單元之間可能互通,也可能有一扇鎖著的

門,或者是一堵不可逾越的牆。迷宮中有一些單元存放著鑰匙,並且所有的門被分成p類,

開啟同一類的門的鑰匙相同,不同類門的鑰匙不同。

大兵瑞恩被關押在迷宮的東南角,即(n,m)單元裡,並已經昏迷。迷宮只有乙個入口,

在西北角。也就是說,麥克可以直接進入(1,1)單元。另外,麥克從乙個單元移動到另乙個

相鄰單元的時間為1,拿取所在單元的鑰匙的時間以及用鑰匙開門的時間可忽略不計。

試設計乙個演算法,幫助麥克以最快的方式到達瑞恩所在單元,營救大兵瑞恩。

【輸入描述】

第1行有3個整數,分別表示n、m、p的值;

第2行是1個整數k,表示迷宮中門和牆的總數。第i+2 行(1 <= i <= k),有5個整數,依次為

xi1、yi1、xi2、yi2、gi,

當gi >= 1時,表示(xi1,yi1)單元與(xi2,yi2)單元之間有一扇第gi類的門,當gi=0 時,

表示(xi1,yi1)單元與(xi2,yi2)單元之間有一堵不可逾越的牆(其中,|xi1-xi2|+|yi1-yi2| = 1,

0 <= gi <= p)。

第k+3行是乙個整數s,表示迷宮中存放的鑰匙總數。

第k+3+j行(1 <= j <= s),有3個整數,依次為xi1、yi1、qi,表示第j把鑰匙存放在(xi1,yi1)

單元裡,並且第j把鑰匙是用來開啟第qi類門的(1 <= qi <= p)。

輸入資料中同一行各相鄰整數之間用乙個空格分隔。

【輸出描述】

將麥克營救到大兵瑞恩的最短時間的值輸出。如果問題無解,則輸出-1。

【樣例輸入】

4 4 9

91 2 1 3 2

1 2 2 2 0

2 1 2 2 0

2 1 3 1 0

2 3 3 3 0

2 4 3 4 1

3 2 3 3 0

3 3 4 3 0

4 3 4 4 0

22 1 2

4 2 1

【樣例輸出】

14

拯救大兵瑞恩

1944 年,特種兵麥克接到國防部的命令,要求立即趕赴太平洋上的乙個孤島,營救被敵軍俘虜的大兵瑞恩。瑞恩被關押在乙個迷宮裡,迷宮地形複雜,但幸好麥克得到了迷宮的地形圖。迷宮的外形是乙個長方形,其南北方向被劃分為 n 行,東西方向被劃分為 m 列,於是整個迷宮被劃分為 n m 個單元。每乙個單元的位置...

AcWing1131 拯救大兵瑞恩(最短路)

這題主要問題是有些地方有鑰匙,這種型別我們之前在bfs種做到過,就是用狀壓dp多列舉一維鑰匙就行了,因為鑰匙不需要時間,所以每次走到取完鑰匙肯定是最優的 本題是二維的,不過轉成一維更方便。我們的dis陣列原先記錄的是點,現在記錄的是點和狀態。建圖是,先建門,將門與牆都插入乙個set便於查詢 建完這兩...

尺有所短,寸有所長 邁瑞 凱恩帝

今天去面邁瑞,等待期間,幾同學在狂貶低邁瑞和凱恩帝的技術含量,還有專利等問題。其實,邁瑞和凱恩帝做的事情在國外看來確實沒太多技術含量,現在還做不了高階產品。但是,至少他們一直在努力,而且,在一窮二白的基礎上取得了初步的成果。比起絕大多數中國企業,他們是值得驕傲的。更不用說比起某些 想想晚清和 時期的...