只有可行性路径搜索(最优性也是需要的因为他还要搜其他路)和连通性的dfs不需要恢复现场, 其他的dfs题都写吧~
状态标记:vis数组,标记某状态已被遍历过,避免重复遍历形成死循环等。
方向数组:dx[4] = {0,0,1,-1},dy[4] = {1,-1,0,0} 可以直接一个for循环走四个方向
剪枝:通过当前状态避免一些不必要的遍历过程,相当于剪掉搜索树的某些枝条。一般分为可行性剪枝(如一个迷宫,问能否从起点到达目标点之类),最优性剪枝(最小步数,求最值,这个很好剪),迭代加深(A*,没怎么了解)适合深度不是很深,但是每次扩展的结点数很多的搜索问题。