HDU 1728 逃離迷宮 BFS

2022-05-01 06:21:11 字數 1427 閱讀 6879

題目鏈結

思路

bfs

一開始 從開始位置 往四周走 如果能走的話 這個時候 轉彎次數都是0

我們的標記不是簡單的標記

我們給每個已經訪問過的位置 第一次訪問時 我們將此時的轉彎次數 賦值給它

當下一次 有其他狀態 又來訪問的時候,我們判斷一下 之前已經標記的轉彎次數 是比當前的大於等於嗎 如果是 那麼這個點 就可以繼續走下去 如果不是 目前的這個狀態就可以不要 相當於剪枝了

有幾個坑點

輸入的時候 座標是從1-n 1-m 的

然後輸入起始座標的時候,, x 代表列 y 代表行

ac**

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define clr(a, b) memset(a, (b), sizeof(a))

using

namespace

std;

typedef

long

long ll;

const

int inf = 0x3f3f3f3f;

const

int maxn = 1e2 + 5;

int move[4][2] = // up 0 down 1 left 2 right 3

;int n, m;

int g[maxn][maxn];

int v[maxn][maxn];

int sx, sy, ex, ey, limit;

int ans;

struct node

;bool ok(int x, int y, int step)

void bfs()

}while (!q.empty())

}if (u.step > limit)

continue;

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

}void init()

int main()

}scanf("%d%d%d%d%d", &limit, &sy, &sx, &ey, &ex);

sx--, sy--, ex--, ey--;

ans = 0;

bfs();

if (ans)

printf("yes\n");

else

printf("no\n");

}}

HDU1728 逃離迷宮 BFS

problem description 給定乙個m n m行,n列 的迷宮,迷宮中有兩個位置,gloria想從迷宮的乙個位置走到另外乙個位置,當然迷宮中有些地方是空地,gloria可以穿越,有些地方是障礙,她必須繞行,從迷宮的乙個位置,只能走到與它相鄰的4個位置中,當然在行走過程中,gloria不能...

hdu1728 逃離迷宮 bfs

解題思路 乙個方向搜到底,那麼每次搜過的點肯定都是用轉彎次數最少的路徑走到的 hdu1728 2014 07 10 20 03 49 accepted 1728 46ms 372k 2360 b g bfs 乙個方向搜到底,那麼每次搜過的點肯定都是用轉彎次數最少的路徑走到的 include incl...

HDU 1728 逃離迷宮 BFS

題目傳送門 典型的廣搜題,但是有坑,在某個方向走的時候要一直走到頭,不然的話可能會出現多轉彎的情況,主要就是保證從起始點到某一點的轉彎次數是最小的 ac include include include include include include include include include i...