poj1321
棋盤問題
dfs,雖然並不知道書上或者模板裡的dfs是什麼樣子,但是大概了解。
//vj掛了 **在上面下回再補
poj2251
dungeon master
這道題很苦逼的做了好幾天,交了幾十發,用兩種方式均返回tle。
然後搜題解,說是要用bfs,啃書,發現原來自己一直不會bfs。
「寬度優先搜尋按照距開始狀態由近及遠的順序進行搜尋,因此可以很容易地用來求最短路徑、最少操作之類問題的答案。」
大概就是,從起點開始每乙個點放進佇列,然後取出佇列中的第乙個點,把距它最近的點的距離確定,放在佇列最後,如果已經訪問過就不放。然後依此重複,直到佇列的長度為0。
因為題目是三維地圖,所以不能用pair陣列,稍微改了一下。
//第乙個bfs和用上資料結構的題!雖然是抄的模板……還是紀念一下^^
#include
#include
#define inf 50
#define infn 1000000
using
namespace
std;
struct p
p[inf][inf][inf];
char m[inf][inf][inf];
int l,r,c;
int sx,sy,sz;
int gx,gy,gz;
int d[inf][inf][inf];
int dx[6]=,dy[6]=,dz[6]=;
int bfs()}}
return d[gx][gy][gz];
}int main()
if(m[i][j][k] == 'e')
p[i][j][k].a = i;
p[i][j][k].b = j;
p[i][j][k].c = k;}}
int res = bfs();
if(res == infn)
else
printf("escaped in %d minute(s).\n", res);
}}
搜尋專題 S
1 簡單描述 數獨,在乙個9x9的方格中,需要把數字1 9填寫到空格當中,並且使方格的每一行和每一列中都包含1 9這九個數字。同時還要保證,空格中用粗線劃分成9個3x3的方格也同時包含1 9這九個數字。2 思路 include using namespace std struct node node...
搜尋專題 dfs and bfs
搜尋,顧名思義,就是對某樣事物進行尋找。好了我就不多廢話了。搜尋有多種形式,常見的dfs 深度優先搜尋 和bfs 廣度優先搜尋 等等,這也就是今天的主要內容 1.dfs 深度優先搜素,就相當於你去逛街,有很多條街相通,你選擇先走任意一條街,如果沒有自己想要去的店,那麼回到上乙個路口,再選擇一條沒走過...
專題整理 搜尋
include include include include include include define n 500050using namespace std int maxn,minn void read int p intmain printf d minn printf d maxn r...