HDU 1728 逃離迷宮 廣搜

2021-08-19 07:56:55 字數 2198 閱讀 5491

題目鏈結

problem description

給定乙個m × n (m行, n列)的迷宮,迷宮中有兩個位置,gloria想從迷宮的乙個位置走到另外乙個位置,當然迷宮中有些地方是空地,gloria可以穿越,有些地方是障礙,她必須繞行,從迷宮的乙個位置,只能走到與它相鄰的4個位置中,當然在行走過程中,gloria不能走到迷宮外面去。令人頭痛的是,gloria是個沒什麼方向感的人,因此,她在行走過程中,不能轉太多彎了,否則她會暈倒的。我們假定給定的兩個位置都是空地,初始時,gloria所面向的方向未定,她可以選擇4個方向的任何乙個出發,而不算成一次轉彎。gloria能從乙個位置走到另外乙個位置嗎?

input

第1行為乙個整數t (1 ≤ t ≤ 100),表示測試資料的個數,接下來為t組測試資料,每組測試資料中,

第1行為兩個整數m, n (1 ≤ m, n ≤ 100),分別表示迷宮的行數和列數,接下來m行,每行包括n個字元,其中字元』.』表示該位置為空地,字元』*』表示該位置為障礙,輸入資料中只有這兩種字元,每組測試資料的最後一行為5個整數k, x1, y1, x2, y2 (1 ≤ k ≤ 10, 1 ≤ x1, x2 ≤ n, 1 ≤ y1, y2 ≤ m),其中k表示gloria最多能轉的彎數,(x1, y1), (x2, y2)表示兩個位置,其中x1,x2對應列,y1, y2對應行。

output

每組測試資料對應為一行,若gloria能從乙個位置走到另外乙個位置,輸出「yes」,否則輸出「no」。

sample input

2

5 5

…**

.*.

…..

…..

*….

1 1 1 1 3

5 5

…**

.*.

…..

…..

*….

2 1 1 1 3

sample output

no

yes

解題思路

這是一道廣搜的題目,與我們平時做的廣搜有點不同的就是題目讓你判斷轉彎數,平時我們做題都是統計步數的,這就是一點不同點。

我們開始搜尋的時候選定乙個方向,然後將這個方向能走的點全部搜一遍標記,如果等到走到乙個沒有標記的點時,肯定是要轉彎的。

就這樣搜到最後即可計算轉彎數,若轉彎數滿足題目要求即輸出yes,否則就輸出no。

還要注意的一點是題上給的點(x1,y1),(x2,y2)中x1,x2代表的是列數,y1,y2代表的是行數。這點不注意也是會一直出錯的。要細心哦~

**部分

#include 

#include

#include

#include

#include

#include

#include

using

namespace

std;

char maps[110][110];

int vis[110][110];

int dir[4][2]=,,,};

int n,m;

int x1,x2,y1,y2,k;

bool flag;

struct node

;void bfs()

for(int i=0; i<4; i++)

node net;

net.x=q.x+dir[i][0];

net.y=q.y+dir[i][1];

q=net;}}

}}int main()

}scanf("%d%d%d%d%d",&k,&x1,&y1,&x2,&y2);

flag=false;

bfs();

if(flag)

cout

<<"yes"

cout

<<"no"

0;}

HDU 1728 逃離迷宮 廣搜

題意 乙個迷宮.從起點走到終點,拐彎次數有限制的情況下找到最優的解。坑爹 本來用結構體來記錄座標 走的步數和拐彎次數,但是發現如果搜一條路徑發現行不通的話這條路上所有點都被標記了,當我再次經過這裡面的某個點 的時候就不能通過了。比如說我一開始行不通的那條路通過某個點是左右通過的,但我下次再要從上或者...

hdu 1728 逃離迷宮

思路 一開始我是往左和往右走,不轉彎,計數不用加,往上和往下走,就轉彎,計數就加一,進行廣搜,搜到最後那個點,比較就可以啦,但是華麗麗的wa啦。所以改一條路搜到底,走不了啦,就一定要轉彎啦。include include include includeusing namespace std stru...

HDU 1728 逃離迷宮

bfs 搞清楚是轉彎而不是步數。所以需要乙個方向一直走下去直到邊界或者牆。還有就是注意題意。給出起點終點的 x,y 位置是交換的。題目是下標1開始。注意。include include include include include include include include include i...