0825 0903搜尋專題

2021-07-05 01:41:51 字數 1128 閱讀 4160

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...