深度优先搜索(DFS)
深度优先搜索是一种利用计算机资源进行暴力枚举的办法,通常用于求一个问题的所有解。
深度优先搜索的核心只有七个字:“不撞南墙不回头”。也就是说,深度优先搜索会从当前状态找到一条可行的路径,然后沿这条路走到底,直到不能再走为止,就返回当前状态。
深度优先搜索的代码模板如下:
1 void dfs(int step) { 2 if (step == n+1) { 3 输出解; 4 } 5 else { 6 while (遍历该点的儿子结点) { 7 if (这个儿子结点未搜素过) { 8 used[该儿子结点] = true; 9 dfs(step+1); 10 used[该儿子结点] = false; 11 } 12 } 13 } 14 }

浙公网安备 33010602011771号