深度优先搜索DFS
来源:互联网 发布:电脑语音朗读软件 编辑:程序博客网 时间:2024/04/29 08:03
深度优先搜索DFS
作为搜索算法的一种,DFS对于寻找一个解的NP(包括NPC)问题作用很大。但是,搜索算法毕竟是时间复杂度是O(n!)的阶乘级算法,它的效率比较低,在数据规模变大时,这种算法就显得力不从心了。
关于深度优先搜索的效率问题,有多种解决方法。最具有通用性的是剪枝(prunning),也就是去除没有用的搜索分支。有可行性剪枝和最优性剪枝两种。此外,对于很多问题,可以把搜索与动态规划(DP,dynamic programming)、完备匹配(匈牙利算法)等高效算法结合
N皇后问题#include<cstdio>#include<iostream>#include<cstring>using namespace std;int n;int ans=0;bool a[20];bool x1[20];bool y1[20];void dfs(int x) { if (x>n) { ans++; return; } for (int i=1;i<=n;i++) { if (x1[i+x]==false&&y1[i-x+n]==false&&a[i]==false) { x1[x+i]=true; y1[i-x+n]=true; a[i]=true; dfs(x+1); a[i]=false; x1[x+i]=false; y1[i-x+n]=false; } }}int main(){ scanf ("%d",&n); memset(a,false,sizeof(a)); memset(x1,false,sizeof(x1)); memset(y1,false,sizeof(y1)); dfs(1); printf ("%d",ans); return 0;}
0 0
- 深度优先搜索 DFS
- 深度优先搜索 DFS
- DFS 深度优先搜索
- DFS 深度优先搜索
- 深度优先搜索(DFS)
- 深度优先搜索(DFS)
- 深度优先搜索DFS
- DFS深度优先搜索
- 深度优先搜索(DFS)
- dfs深度优先搜索
- dfs 深度优先搜索
- 深度优先搜索(DFS)
- 深度优先搜索DFS
- DFS深度优先搜索
- 深度优先搜索(DFS)
- 深度优先搜索DFS
- 深度优先搜索(DFS)
- 深度优先搜索--DFS
- List,Set,Map用法以及区别
- Hibernate在oracle中ID增长的两种方式
- 表单选择时变色jquery实现
- 老是忘记这些缩写,我一定是太不上心了
- leetcode Add Digits
- 深度优先搜索DFS
- having和where的性能比较
- Linux系统vmwaretools安装之后无法进入图形界面的问题
- [已解决]下载chromium源码 download_from_google_storage 无法下载文件
- Linux 使用信号量在两个进程中分别打印AAA和BBB
- Windows7旗舰版 “宽带连接错误711”的根本原因及彻底解决方法
- String的equals和==
- 从Java视角理解系统结构(一)CPU上下文切换
- Eciipse中安装SVN插件