嗯...
今天就来学习一下什么是深搜???
首先深搜是一个骗分神器....
——如果有什么一遍DFS解决不了的问题,那就DFS两遍...
但....DFS是一种时间消耗极大的算法
所以,要学会估计自己是否会超时,
把题中数据带入式子,得出的值
<10^7 基本稳过
∈[10^7,10^8] 看出题人的姿势水平
∈[10^8,10^9] 看脸
>10^9 去买彩票吧....
言归正传....
DFS一般借助递归来实现:
1 void dfs( int deep) 2 { 3 if(到达边界){ 4 //做一些处理后返回 5 } 6 else{ 7 for(所有可能的选择){ 8 dfs(deep + 1); 9 } 10 } 11 }
上面这段代码是DFS的一般写法....
DFS与递归的区别:
DFS是一种算法,注重的是思想,而递归是一种基于编程语言的实现方式。
我们可以通过递归来实现DFS
就讲到这儿吧... 日后会更新...