最近在复习dfs ,感觉清除标记一直很晕,觉得有的不能清除标记有的又要清除标记。。花了一些时间整理了下也不知道对不对。。
上午自己写了 个迷宫想了一下,发现有目标态或者说是终点的话就需要清除标记,也就是一个回溯的过程,避免走过的点不能走了。。。
比如说这个情况:
S…
.########.
.########.
.########.
…
#########.
#########.
#########.
#########.
#########E
但是如果他是没有终点的随便走,看最多能走多少步的话,就不需要清除标记,不然会重复计数。。
比如说hdu 1241 这道题。
1 1
*
3 5
@@*
@
@@*
1 8
@@***@
5 5
****@
@@@
@**@
@@@@
@@**@
0 0
就不能清除标记,不清除就可以让他一直走,走到实在无路可走,结束dfs.
感觉以后使用的时候还是要具体情况具体分析,明白了作用以后灵活运用,感觉以前都是糊里糊涂的。。
记录下自己一点点脑残的看法。。留给自己看。。