題目鏈結
思路
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...