算法--八皇后问题
来源:互联网 发布:朱炫大师兄 知乎 编辑:程序博客网 时间:2024/06/03 01:28
在棋盘上放置8个皇后,使得他们不能相互攻击,此时,每个皇后的攻击范围为同行同列和同对角线,要求找出所有解,
回忆之前分析生成排列所用的解答树,我们再把问题简化为四皇后问题,规则不变,写出它的完整解答树
与生成1~n的排列这篇博文中的解答树最大的不同点就是----只有一条或者几条路径可以到达最后一层,而其它的路径在递归时因为条件不满足被回溯了,这也称为回溯法。
本题代码如下:
/*八皇后问题*/#include<cstdio>#include<iostream>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std; const int N=8;int poi[N]={0};int tot=0;int search(int cur){ if(cur==N){ tot++; printf("第%d个解:\n",tot); for(int i=0;i<N;i++)printf("(x=%d,y=%d)\n",i,poi[i]); } else{ for(int j=0;j<N;j++){ int ok=1; poi[cur]=j; for(int k=0;k<cur;k++){ if(poi[cur]==poi[k]||cur-poi[cur]==k-poi[k]||cur+poi[cur]==k+poi[k]){ ok=0;break; } } if(ok)search(cur+1); } }}int main(){ int i,j; search(0);}
0 0
- 八皇后问题[算法]
- 八皇后问题算法
- 算法问题-八皇后
- 算法--八皇后问题
- 算法-八皇后问题
- 算法八皇后问题
- 算法--八皇后问题
- 八皇后问题.递归算法.
- 【经典算法】八皇后问题
- 回溯算法---八皇后问题
- 回溯算法-八皇后问题
- 八皇后问题回溯算法
- 八皇后问题--递归算法
- 算法之八皇后问题
- 回溯算法-八皇后问题
- 八皇后问题-回溯算法
- 八皇后问题-回溯算法
- 回溯算法:八皇后问题
- wamp中Apache多站点配置,Forbidden解决
- mysql数据库中的数据类型
- 阿里笔试-从1到1000生成900个不重复的随机数并打印出来
- Eclipse快捷键ctrl shift down 失效
- adb 连接天天模拟器端口5037被占用问题的解决
- 算法--八皇后问题
- 22. PHP 变量范围
- Uva 10305 拓扑排序
- c++内存池
- 表的创建,查看、修改与删除
- 凸包算法分析
- 迷宫问题-广度优先搜索
- 字串统计 --- 蓝桥杯
- c#代码统计程序