藍橋集訓 1 初探深度優先搜尋

2021-09-13 03:47:10 字數 725 閱讀 9986

所謂深度優先搜尋,就是乙個板子而已,那麼這個板子應該怎麼寫呢?

#include using namespace std;

int n, m;

int dir[4][2] = , , , };

string maze[10005];

bool vis[10005][10005];

bool in(int x, int y)

void dfs(int x, int y)

} vis[x][y] = 0;

}int main()

for(int i = 0; i < n; i++)

} }cout << "your answer" << endl;

return 0;

}

以上是最簡單的板子,當然了,對於不同問題也要進行不同分析

下面就是乙個抽象深度優先搜尋(並沒有寫全, 因為不同題目不同方法)

#include #include using namespace std;

vectorvec[10005];

int n, m;

bool vis[10005];

bool in(int x)

void dfs(int x) }}

int main()

for(int i = 0; i < n; i++)

}}

深度優先搜尋 1

1.裝載問題 思路 每種貨物有兩種可能 裝與不裝,所以只用在遞迴時迴圈兩種可能即可,然後把每次的值進行maxn然後輸出 前提當前的sum 承重量 注意 計算是否超標需用乙個變數儲存,防止重複計算,否則會超時。include using namespace std int a 46 maxn 1 n,...

廣度優先搜尋 深度優先搜尋

前言 這幾天複習圖論演算法,覺得bfs和dfs挺重要的,而且應用比較多,故記錄一下。廣度優先搜尋 有乙個有向圖如圖a 圖a廣度優先搜尋的策略是 從起始點開始遍歷其鄰接的節點,由此向外不斷擴散。1.假設我們以頂點0為原點進行搜尋,首先確定鄰接0的頂點集合s0 2.然後確定頂點1的集合s1 頂點2沒有鄰...

廣度優先搜尋,深度優先搜尋

深度優先搜尋 depth first search 簡稱dfs。最直觀的例子就是 走迷宮 廣度優先搜尋 每個頂點都要進出一遍佇列,每個邊也都會被訪問一次,所以 時間複雜度o v e 主要消耗記憶體的是visited prev陣列 queue佇列,所以 空間複雜度o v 深度優先搜尋 每條邊最多會被訪...