嘗試了一下dfs在我的編譯器上果然爆棧,稍微複雜點的圖不行,但沒想到在poj上過了,哈哈,這裡就是寫一下思想。
(dfs省去了寫佇列的麻煩,應當也好理解吧,,當然是會遞迴的前提下)
如下為dfs。
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
int dx[4] = ;
int dy[4] = ;
int vis[5][5];
int maps[5][5];
int judge[5][5];
int flag;
void dfs(int a, int b)
for (int i = 0; i < 4; i++)
}}int main()
}flag = 0;
memset(vis, 0, sizeof(vis));
memset(judge, 0, sizeof(judge));
dfs(0, 0);
printf("(0, 0)\n");
for (int i = 0; i < 5;i++)
for (int j = 0; j < 5;j++)
if (judge[i][j] == 2)
}
用bfs完成,這個對付複雜的圖綽綽有餘了
/*
模擬佇列,並用pre模擬指標,指向運動前的位置
*/#include
#include
using namespace std;
int a[105][105];
int dx = ;
int dy = ;
struct pointq[105];
void print(int i)
}void bfs()
if (m == 4 && n == 4)
}first++;//乙個點向四個方向走完後first加1
}}int main()
POJ3984 迷宮問題
題目 迷宮問題 time limit 1000ms memory limit 65536k total submissions 3183 accepted 1861 description 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎...
POJ 3984 迷宮問題
一道比較簡單的bfs題 include include include include define max 6 using namespace std int map max max px max max py max max int movex 4 movey 4 bool vis max ma...
POJ 3984 迷宮問題
迷宮問題 time limit 1000ms memory limit 65536k total submissions 7047 accepted 4123 description 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,...