dfs深搜
什么是深搜?
- 百度百科:按照一定的顺序、规则,不断去试探,直到找到问题的解,试完了也没有找到解,那就是无解,试探时一定要试探完所有的情况(实际上就是穷举)
- 个人理解:暴力穷举每一种状态
它有什么好处?
- 容易理解
- 骗分利器
- 好写
它有什么弊端?
- 慢。毕竟是穷举每一种状态
- 一搜到底。对于递归次数非常多的话,dfs会非常浪费时间,甚至有可能会爆栈
如何实现?
- 算法流程图如下:
#include <iostream>
#include <cstdio>
void dfs(int step)
{
if(到达目的地)
{
输出解;
return;
}
for(int i=1;i<=算符种数;i++)
if(满足条件)
{
保存结果;
dfs(step+1);
回溯;
}
}
int main()
{
cout<<dfs(1);
return 0;
}
原文地址:https://www.cnblogs.com/BigYellowDog/p/9736058.html
时间: 2024-11-06 07:15:48