回溯与深度优先算法的关系总结

一、总结

回溯的目的是什么?复原环境,保证状态不变,防止对子问题的搜索过程污染了其它问题的处理。

二、举个栗子

(1)、不确定,可能不准确,或者不全面的,需要进行回溯。
比如,全排列,第1个箱子里面放什么,肯定是放1吗?不是吧,那你给放上1了,人家2,3不会有意见吗?那还回溯清理好现场,人家2,3还咋玩?

(2)、准的,干了就是对的,有理的,就不回溯了。
比如图的遍历,P2853,需要标识出奶牛都可以走到哪些牧场,能走到就是能走到,

难不成走到了再拿下来说不能走到??

三、不想使用回溯的其它办法

要不增值就在递归的参数里面加,要不就回溯,不然会改变它的值。也许是积累已经到位,或是已经理解透彻,此后就明白了回溯与不回溯的关系。

四、写给自己的鸡汤

很多时候理解不到或是理解不透彻一个知识点也是正常的,不必灰心丧气,做题的时候认真思考,留心一点,那么题量上去了有的地方自然茅塞顿开。这也告诉我们,做题是提升能力的重要关键。当然也不是说非得刷一堆,在保证质量的前提下(把题目弄懂,不放过任何一个细节,积极讨论,甚至达到可以和同学讲懂的境界),多多刷题,积累题量,才能由量变到质变。

原文地址:https://www.cnblogs.com/littlehb/p/15137455.html