先说理论上的(个人意见):需要回溯的题大多都是迷宫这一类的,对这一步所做的操作不确定,可操作可不操作的(就像迷宫,这一步到底走不走并不确定),要将操作在递归之后回溯一步;如果操作对象变量在深搜函数的参里,也可以在递归里写参的时候写在参里(举个例子吧,像dfs(c+1,sum++)等价于 sum++;dfs(c+1,sum);sum--;)因为带进参里实际上也没改变变量本身的值。而不需要回溯的题则是搜到之后确定要对它做操作的,之前的例子暂时没想到,就拿OpenJudge2.5的1388 Lake Counting来说,我们可以肯定找到一个‘W’后要标记,因为题目求的是总水塘的个数,如果回溯了就会重复计算。