定義:
map、mark、佇列q、節點node
int bfs (引數)
} return 結果不存在時的結果
}初始化起點資訊:
mark標記為true
處理起點資訊
入隊
// 九度:1456
// bfs
// //
// 迷宮類bfs
#include #include #define size 55
using namespace std;
int map[size][size][size];
bool mark[size][size][size];
struct node;
queueq;
int dir[3]=;
void init()
}void input(const int a,const int b,const int c)
// 越界
if(map[nx][ny][nz] == 1)
// 牆壁
/// 乙個隱蔽的錯誤 ///
//// mark[nx][ny][nz] == true
// 錯打為 mark[nx][ny][nz] = true
//// 寫為下面的格式,常亮放到左邊,如果輸入為賦值,會提示錯誤
/if(true == mark[nx][ny][nz])
// 已訪問
node next;
next.x = nx;
next.y = ny;
next.z = nz;
next.t = now.t+1;
q.push(next);//符合,入隊
mark[nx][ny][nz] = true;//標記為已訪問
if(nx == a-1 && ny == b-1 && nz == c-1)
}//for
}//while
return -1;//已遍歷後,還沒有到達終點
}int main()
else//超時,輸出-1
} return 0;
}
九度 題目1456 勝利大逃亡
題目描述 ignatius被魔王抓走了,有一天魔王出差去了,這可是ignatius逃亡的好機會.魔王住在乙個城堡裡,城堡是乙個a b c的立方體,可以被表示成a個b c的矩陣,剛開始ignatius被關在 0,0,0 的位置,離開城堡的門在 a 1,b 1,c 1 的位置,現在知道魔王將在t分鐘後回...
九度OJ 1456 勝利大逃亡
本題是廣度優先搜尋的第一題。本題先抽象出狀態,構造出狀態轉移關係,構造出解答樹,將搜尋路徑抓化為搜尋狀態,並利用結論進行剪枝優化解答樹,後利用廣度優先搜尋對狀態解答樹進行層次遍歷,找到最優解。題目描述 ignatius被魔王抓走了,有一天魔王出差去了,這可是ignatius逃亡的好機會.魔王住在乙個...
九度OJ題目1456 勝利大逃亡
題目描述 ignatius被魔王抓走了,有一天魔王出差去了,這可是ignatius逃亡的好機會.魔王住在乙個城堡裡,城堡是乙個a b c的立方體,可以被表示成a個b c的矩陣,剛開始ignatius被關在 0,0,0 的位置,離開城堡的門在 a 1,b 1,c 1 的位置,現在知道魔王將在t分鐘後回...