蒟蒻萌新的c++深搜指南

适合萌新的c++深搜指南

(好吧好吧,我是蒟蒻,但教程肯定是原创的啦,比较符合蒟蒻的水平,就是为了方便自己以后复习啦,dalao不要吐槽,多多指教)

     先来深搜吧,好不容易学完了,深搜全称“深度优先搜索”(很高大上的名字有木有!),简单来说就是“不撞南墙心不死”,我来画张图理解一下哈(深搜广搜我一般都借助图来理解啦)。

(图1-1)(纯手绘,图丑不怪,字丑。。。就不管了)

蒟蒻萌新的c++深搜指南_第1张图片蒟蒻萌新的c++深搜指南_第2张图片

按照深搜的思路,我们遍历的顺序应该是1-2-4-2-5-2-1-3-6,具体解释一下,首先从1开始遍历,然后到2再到4,到4时发现无路可走啦,于是返回上一步2,接下来继续从2到5,又没路走了,于是返回2,还是没有路,再返回1,然后继续到3到6,整张图的遍历就完成了。(没看懂?自己看着图捋一遍就会了,刚开始总是不好理解的,毕竟我也是个蒟蒻TAT)。

下一步就是实现,我们结合数字三角形这道题来看一下代码。(题意我在这里就不详述了,去度娘上查“C++数字三角形”就可以了,我在这里是求最大值,当然求最小值也差不多)。

上代码。

 

只上核心部分,就是深搜嘛,不懂的就看代码注释吧,不多做解释了。

剩下的就是读入和打擂台了,我写的也不咋地,就不给大家看了。

好啦好啦,深搜就到这里,等着给大家找点深搜的题(特别标注:深搜不光可以用来解决图的问题,还有很多用处,只不过我喜欢用图来理解)

 

你可能感兴趣的:(蒟蒻萌新的c++深搜指南)